1、卸载原有或旧版本
删除安装包:
yum remove docker-ce docker-ce-cli containerd.io
删除镜像、容器、配置文件等内容:
rm -rf /var/lib/docker
删除Docker残余
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runc
2、 服务器有网环境
2.1、安装必要的一些系统工具
sudo yum install -y yum-utils
sudo yum makecache fast
2.2、添加软件源信息
阿里云资源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.3、安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2.4、开启Docker服务
sudo service docker start
2.5、验证
docker version
3、服务器无网环境
3.1、下载Docker安装包
1、浏览器输入以下地址:https://download.docker.com/linux/static/stable/x86_64/
找到如图所示的文件单击点击下载。
2、下载完成后将安装包上传到服务器
3.2、解压缩
1、在传包目录下对安装包进行解压
tar xvfz docker-26.0.0.tgz
2、将解压之后的docker文件移到 /usr/bin目录下;
cp docker/* /usr/bin/
4.3、创建docker服务并启动
1、修改文件servers文件内容
vi /etc/systemd/system/docker.service
2、docker.service文件内容如下保存并退出:
[Unit]
Description=Docker 应用容器引擎
Documentation=https://docs.docker.com
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
[Service]
Type=notify
# 默认情况下不使用 systemd 来管理 cgroups,因为委派问题仍然存在,
# 并且当前的 systemd 不支持运行 Docker 容器所需的 cgroup 功能集。
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
# 注意 StartLimit* 选项在 systemd 229 中从 "Service" 移到了 "Unit"。
# 旧位置和新位置都被 systemd 229 及以上版本接受,因此如果你想让你的服务文件
# 兼容较早版本的 systemd,请将这些选项移到 "Service" 下。
StartLimitBurst=3
# 注意 StartLimitInterval 在 systemd 230 中被重命名为 StartLimitIntervalSec。
# 旧名称和新名称都被 systemd 230 及以上版本接受,所以如果你想让你的服务文件
# 兼容较早版本的 systemd,请将此选项重命名为 StartLimitInterval。
StartLimitIntervalSec=60
# 设置非零的 Limit* 会由于内核中会计开销的问题导致性能问题。
# 我们建议使用 cgroups 来进行容器本地会计。
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# 如果你的 systemd 版本不支持此选项,请注释掉 TasksMax。
# 仅 systemd 226 及以上版本支持此选项。
TasksMax=infinity
# 设置 delegate=yes 以便 systemd 不重置 Docker 容器的 cgroups
Delegate=yes
# 停止时只杀死 docker 进程,而不是 cgroup 中的所有进程
KillMode=process
# 如果 Docker 守护程序意外退出,则重启它
Restart=on-failure
# 设置在强制停止 Docker 守护程序之前等待的时间
TimeoutStopSec=30
# 将 /tmp 挂载为 tmpfs 到 Docker 根目录内部
# MountFlags=slave
[Install]
WantedBy=multi-user.target
3、给docker.service文件赋权
chmod +x /etc/systemd/system/docker.service
4、重新加载服务程序
systemctl daemon-reload
5、启动Docker,并将服务写入开机自动启动
systemctl start docker
systemctl enable docker.service
注: 如果启动失败,可临时禁用SELinux即可,执行永久禁用sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
,/etc/selinux/config
为SELinux配置存放路径可根据实际情况调整
6、查看docker运行状态。(Active显示running,证明已经处于运行状态)
systemctl status docker
4、配置镜像仓库
输入:
sudo vim /etc/docker/daemon.json
按下i
键进入编辑模式,粘贴如下内容后,按ESC
键退出编辑并按:wq!
保存并退出
{
"registry-mirrors": [
"https://tl7kmugm.mirror.aliyuncs.com",
"https://mirrors.ustc.edu.cn/",
"http://mirrors.163.com/",
"https://mirrors.cloud.tencent.com/",
"https://mirrors.bfsu.edu.cn/",
"https://docker.m.daocloud.io",
"https://docker.1panel.live"
]
}
重启Docker服务
systemctl restart docker.service