1、docker安装包tar下载地址
Index of linux/static/stable/x86_64/
2、下载tgz文件并解压
tar -zxvf docker-24.0.8.tgz
解压后docker文件夹下位docker相关文件
3、将老版本docker相关文件,备份
将 /usr/bin/docker下docker相关的文件,mv到备份目录
4、将新版本docker二进制文件,复制到/usr/bin/目录下
docker version验证版本
5、修改相关配置文件,以及解决docker启动失败的问题
/etc/docker/daemon.json
{
"data-root": "/work/docker/yourRootdir",
"registry-mirrors": [
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
]
}
升级前的docker18,配置文件中rootdir参数是 graph
升级到docker20后,将graph改为data-root,否则docker启动会报错
通过命令查看docker启动的具体异常日志
sudo dockerd --debug
6. 将docker注册为系统服务
vim /usr/lib/systemd/system/docker.service
#####
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd.service time-set.target
Wants=network-online.target containerd.service
[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
TimeoutStartSec=0
RestartSec=2
Restart=always
# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3
# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s
# 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
# Comment TasksMax if your systemd version does not support it.
# Only systemd 226 and above support this option.
TasksMax=infinity
# 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
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target
启动docker
重启守护进程
systemctl daemon-reload
systemctl start docker
查看docker状态
systemctl status docker
设置开机启动
systemctl enable docker
参考链接
离线安装Docker和DockerCompose的详细教程-优快云博客