docker二进制包的安装脚本

471 阅读1分钟

为了适应无互联网环境的docker环境安装,编写一个docker二进制包的安装脚本

阿里云二进制包下载地址: mirrors.aliyun.com/docker-ce/l…

安装脚本

vi install_docker.sh 写入以下脚本内容

# 定义需要用到的变量
docker_package_name=docker-18.03.1-ce.tgz  # 安装包名称
docker_root_dir=/home/docker # images、容器文件存放目录
registry_mirrors="https://p9i73rsy.mirror.aliyuncs.com" # 镜像仓库地址,一般配置成国内镜像源

# 判断命令是否执行成功
isSuccess(){
  if [ $? -eq "0" ]; then
      echo "$1成功"
    else
      echo "$1失败"
      exit 1
  fi 
}

# 解压安装包
tar xzvf $docker_package_name

isSuccess 解压

# 安装程序包
mv docker/* /usr/bin/
rm -rf docker
# 生成系统服务配置文件
echo "[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd --graph $docker_root_dir
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target">>/usr/lib/systemd/system/docker.service

isSuccess 生成系统服务配置文件

# 配置加速镜像
mkdir -p /etc/docker # 创建文件夹
#创建文件并写入内容
echo "{ 
  \"registry-mirrors\": [\"$registry_mirrors\"],
  \"log-driver\": \"json-file\",
  \"log-opts\": {
    \"max-size\": \"10m\",
    \"max-file\": \"5\"
    }
}">>/etc/docker/daemon.json

isSuccess 配置加速镜像

# 重载环境变量
systemctl daemon-reload
isSuccess 重载环境变量
#设置docker服务开机启动 
systemctl enable  docker 
isSuccess 设置docker服务开机启动
# 启动docker服务
systemctl start docker.service
isSuccess 启动docker服务

isSuccess docker服务安装

安装脚本执行结果

[root@shizc ~]# ./install_docker.sh
docker/
docker/docker-init
docker/runc
docker/docker
docker/docker-proxy
docker/containerd
docker/ctr
docker/dockerd
docker/containerd-shim
解压成功
生成系统服务配置文件成功
配置加速镜像成功
重载环境变量成功
设置docker服务开机启动成功
启动docker服务成功
docker服务安装成功

卸载脚本

vi uninstall_docker.sh 写入以下脚本内容

docker_root_dir=/home/docker # images、容器文件存放目录
rm -f /usr/lib/systemd/system/docker.service
rm -f /etc/docker/daemon.json
rm -rf /usr/bin/docker-init
rm -rf /usr/bin/runc
rm -rf /usr/bin/docker
rm -rf /usr/bin/docker-proxy
rm -rf /usr/bin/containerd
rm -rf /usr/bin/ctr
rm -rf /usr/bin/dockerd
rm -rf /usr/bin/containerd-shim
rm -rf $docker_root_dir
echo "卸载成功"