文章目录
一、卸载
- 查看当前版本
docker -v

2. 如果有,先停止docker
systemctl stop docker
1.1 判断docker是以哪种方式安装
rpm -q docker-ce
如果输出,以下内容,则为yum安装

如果输出,则为二进制离线安装

1.2 yum安装 的卸载方式
卸载 Docker 软件包
yum remove -y docker-ce docker-ce-cli containerd.io
清理残留文件(可选)
sudo rm -rf /var/lib/docker # Docker 数据目录(镜像、容器等)
sudo rm -rf /var/lib/containerd # containerd 数据目录
sudo rm -rf /etc/docker # 配置文件目录
移除 Docker 仓库配置(可选)
sudo rm /etc/yum.repos.d/docker-ce.repo
1.3 二进制离线安装 的卸载方式
删除docker配置文件目录
rm -rf /etc/docker
删除docker service文件目录
rm -rf /etc/systemd/system/docker.service
或
rm -rf /usr/lib/systemd/system/docker.service
删除docker部署目录
# 如果配置文件中指定了docker-root配置项,则删除该配置项对应的目录
rm -rf /home/docker_data
# 如果配置项中未指定docker-root配置项,则docker会被部署到/var/lib/docker目录下
rm -rf /var/lib/docker
卸载docker存储库
rm -rf /etc/yum.repos.d/docker-ce.repo
重启服务
reboot
离线安装卸载时拓展说明
安装的时候会做这个操作cp docker/* /usr/bin/ ,所以也可以去删除这些东西,不过经测试发现即使没删,再次安装比如yum安装也可以安装成功,所以不会冲突。

如果非要删除,可以先看其是否存在
ls -l /usr/bin/{containerd,containerd-shim-runc-v2,ctr,docker,dockerd,docker-init,docker-proxy,runc}
然后删除
sudo rm -rf /usr/bin/containerd /usr/bin/containerd-shim-runc-v2 /usr/bin/ctr /usr/bin/docker /usr/bin/dockerd /usr/bin/docker-init /usr/bin/docker-proxy /usr/bin/runc
二、安装
2.1 yum 安装
- 有两种命令方式
第一种
yum install -y docker-ce
- 特点:仅安装 docker-ce 主包。
- 依赖处理:依赖 yum 的自动依赖解析功能,理论上会安装
docker-ce-cli、containerd.io 等必要依赖。 - 官方仓库 + 最新版本
第二种
yum install -y docker-ce docker-ce-cli containerd.io
- 特点:显式指定主包和关键依赖包。
- 依赖处理:强制安装指定版本的依赖,避免因仓库配置问题导致的依赖缺失。
- 第三方仓库 + 旧版本
一般使用第一种就可以
2. 2 二进制离线安装
-
阿里云下载安装包:https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/
-
解压,移动
tar -zvxf docker-26.0.0.tgz
cp docker/* /usr/bin/
- 注册服务,新建 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
- 将 docker.service 拷贝到
cp docker.service /usr/lib/systemd/system/
- 重新加载配置文件
systemctl daemon-reload
注意:如果启动docker提示"Failed to execute operation: Bad message",可能复制docker.service文件时,[Unit] 变成了 t],又或者ExecStart 写成Execstart。
三、测试是否安装成功与开机自启
- 启动docker
systemctl start docker
- 查看docker状态
systemctl status docker
- 设置开机自启
systemctl enable docker
四、仓库国内镜像
配置镜像参考:https://blog.csdn.net/u014390502/article/details/143472743
比如:https://docker.tbedu.top/
sudo systemctl daemon-reload && sudo systemctl restart docker
阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

1650

被折叠的 条评论
为什么被折叠?



