栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【Docker】 Ubuntu 18.04 LTS 一键安装docker并优化配置

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Docker】 Ubuntu 18.04 LTS 一键安装docker并优化配置

1. 具体步骤

step 1: 安装所需的工具程序
step 2: 安装GPG证书
step 3: 更新 apt sources.list
step 4: apt 安装 docker-ce
step 5: 更新 /etc/docker/daemon.json 文件
step 6: 迁移 docker 目录 到 /data/docker

2. 一键安装脚本内容如下
_setupDocker() {
  local flg=0
  # [检查是否强制重新安装]
  [ X$flg = X0 ] && [ X$(command -v docker) = X ] && flg=1
  [ X$flg = X0 ] && [ X$1 = X-f -o X$1 = X--force-reinstall ] && flg=1
  [ X$flg = X0 ] && {
    echo 'Usage: bash -x '$0' [-f,--force-reinstall]'
    return
  }

  ## step 1: 安装所需的工具程序
  local lTools='rsync curl apt-transport-https '
  lTools+='ca-certificates software-properties-common '
  apt-get update
  apt-get -y install $lTools

  ## step 2: 安装GPG证书
  local lMirUrl='https://mirrors.aliyun.com/docker-ce/linux/ubuntu'
  curl -fsSL $lMirUrl/gpg | apt-key add -

  ## step 3: 更新Apt source
  local lArch='amd64'
  local lAptSrc='/etc/apt/sources.list'
  [ X$(arch) = Xaarch64 ] && lArch='arm64'
  local lUbtVer=$(awk -F'=' '/^UBUNTU_CODENAME=/{print $2}' /etc/os-release 2>/dev/null)
  [ X$lUbtVer = X ] && lUbtVer='bionic'
  {
    sed -i '//docker/d' $lAptSrc
    rm -f ${lAptSrc}.d/docker*.list
  } 2>/dev/null
  {
    printf 'deb [arch=%s] ' $lArch
    printf '%s ' $lMirUrl
    printf '%s stablen' $lUbtVer
  } >>${lAptSrc}

  ## step 4: apt 安装 docker-ce
  apt update
  apt install -y docker-ce --reinstall
  ## step 5: 更新 docker/daemon.json 文件
  local lDockerRegistry="https://docker.mirrors.ustc.edu.cn"
  local lInsecSvrip="192.168.100.86:8080"
  {
    printf '{n  "dns": [ "114.114.114.114", "8.8.8.8" ],n'
    printf '  "registry-mirrors": [ "%s" ],n' $lDockerRegistry
    printf '  "insecure-registries": [ "%s" ],n' $lInsecSvrip
    # printf '  "storage-driver":"btrfs",n'
    printf '  "experimental": truen}n'
  } >/etc/docker/daemon.json

  ## step 6: 迁移 docker 目录 到 /data/docker
  local lSvcFile=/lib/systemd/system/docker.service
  if ! grep -Eq '/data/docker' $lSvcFile; then
    sed -i -r '/^ExecStart=/ s@$@ --graph=/data/docker@' $lSvcFile
  fi
  systemctl stop docker.service docker.socket
  rm -rf /data/docker 2>/dev/null
  mkdir -p /data 2>/dev/null
  rsync -avzP /var/lib/docker /data
}

[ "X$0" = "X$BASH_SOURCE" ] && _setupDocker $@

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/642389.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号