- 下载docker资源包 https://download.docker.com/linux/static/stable/x86_64/
- 下载docker-compose资源包 https://github.com/docker/compose/releases
- 准备docker.service
docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
- 上传资源到服务器指定目录
5. deploy.sh
#!/bin/bash
# 删除docker包
echo "移除镜像,容器, 停止docker服务"
docker rm -f $(docker ps -aq) 2>/dev/null
docker rmi -f $(docker images -aq) 2>/dev/null
systemctl stop docker.service
rm -rf /etc/docker
rm -rf /run/docker
rm -rf /var/lib/dockershim
rm -rf /var/lib/docker
rm -rf /root/docker-resource/docker
# 解压docker包
echo "解压docker包"
tar -xvf /root/docker-resource/docker-20.10.17.tgz -C /root/docker-resource
echo -----------------------------------------
# 删除bin目录下文件以及docker.service
for i in {1..9}
do
rm -f /usr/bin/$(ls /root/docker-resource/docker | awk 'NR=='$i'')
done
rm -f /etc/systemd/system/docker.service
echo "docker.service,bin目录下文件删除完成"
echo -----------------------------------------
echo "复制docker目录下内容到bin目录下..."
cp /root/docker-resource/docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system目录...'
cp /root/docker-resource/docker.service /etc/systemd/system
echo '添加文件权限...'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo 'docker服务信息...'
systemctl list-units --type=service | grep docker.service
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v
echo -----------------------------------------
# docker-compose
# 删除docker compose
rm -f /usr/local/bin/docker-compose
echo "移除docker compose完成"
# 安装docker compose
echo "docker compose 开始部署"
# 复制资源到到/usr/local/bin目录下
cp /root/docker-resource/docker-compose-linux-x86_64 /usr/local/bin/
mv /usr/local/bin/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证是否安装成功
echo "安装docker compose完成"
docker-compose -v
echo -----------------------------------------
- 部署
cd /root/docker-resource
chmod +x deploy.sh
./deploy.sh