Tips

如下步骤均在root用户下进行操作。

1 卸载旧版本

如果系统上存在旧版本的 Docker ,需要先卸载旧版本

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

2 下载安装包

2.1 安装包获取

前往如下页面,获取匹配自身架构的安装包:Docker 下载页面

2.2 下载安装包

cd /tmp
wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz

3 解压安装包

tar -xzf docker-24.0.7.tgz

解压后,可获得docker目录,查看目录内容,可以看到dockerd, docker, containerd, ctr, runc 等二进制文件。

ls docker/

4 复制二进制文件到系统路径

cp docker/* /usr/bin/

5 创建系统服务

5.1 创建系统服务文件

vim /etc/systemd/system/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
# 默认情况下使用 systemd 作为 cgroup 驱动,与 k8s 兼容
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# 非空时限制并发任务数量
LimitNOFILE=infinity
# 最大进程数
LimitNPROC=infinity
# 最大文件句柄数
LimitCORE=infinity
# 如果获取任务超时,则发送 SIGKILL
TimeoutStartSec=0
# 设置委派为 yes,这样 systemd 就不会重置 docker 容器的 cgroup
Delegate=yes
# 仅杀死 docker 进程,不杀死 cgroup 中的所有进程
KillMode=process
# 在容器崩溃时自动重启 docker
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

5.2 重新加载 systemd 配置

创建或修改服务文件后,需要让 systemd 重新加载配置。

systemctl daemon-reload

6 启动并测试 Docker

# 启动 docker 服务,启动服务无报错,说明正常启动
systemctl start docker

# 设置 docker 服务开机自启
systemctl enable docker

# 检查进程状态
systemctl status docker

# 检查docker版本
docker --version
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐