一、准备工作 (以下记录基于本地yum仓库操作,一开始忘记更新为在线源)

  • 卸载旧版本Docker(如存在)
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 更新系统包并安装必要依赖(指的是一个项目(或软件)正常运行所必须依赖的外部代码库、框架、工具或模块)
yum install -y yum-utils device-mapper-persistent-data lvm2

二、配置Docker CE的Yum仓库

  • 添加Docker官方Yum仓库源(为了获得最新、最安全、功能最完整的Docker版本,并简化后续的维护和更新工作)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 可选:配置国内镜像加速仓库(如阿里云、腾讯云)

三、安装Docker CE

  • 通过Yum安装最新版Docker CE
yum install -y docker-ce docker-ce-cli containerd.io
3.1 报错:网络连接问题,无法从Docker官方仓库下载软件包

在这里插入图片描述

  • 解决方案1:使用国内镜像源
# 删除刚才添加的Docker官方仓库
rm -f /etc/yum.repos.d/docker-ce.repo

# 添加阿里云Docker镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新yum缓存
yum clean all
yum makecache

# 安装Docker
yum install -y docker-ce docker-ce-cli containerd.io
3.2 报错:缺少 container-selinux 和其他依赖包(在CentOS 7本地仓库中可能没有,更新本地仓库后还是缺少依赖)

在这里插入图片描述

四、更换为之前备份目录中的在线仓库

  • 本地仓库
    在这里插入图片描述
  • 在线仓库

在这里插入图片描述

4.1 清理并创建缓存后再次安装Docker CE
yum clean all && yum makecache
yum install -y docker-ce docker-ce-cli containerd.io

在这里插入图片描述

4.2 基本安装成功,只是报错docker-compose-plugin下载失败(由于这个插件是可选的,可以先完成安装)

在这里插入图片描述
错误说明本地仓库(local)已经被禁用或者不存在了,现在可以直接安装Docker了

4.3 再次安装
# 现在可以直接安装,不需要--disablerepo参数了
yum install -y docker-ce docker-ce-cli containerd.io

五、启动并验证Docker服务

  • 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker
  • 验证安装
docker --version
docker run hello-world
5.1 报错:网络连接问题导致无法下载hello-world镜像

在这里插入图片描述

  • ping了一下docker官方仓库,丢包大,域名改为8.8.8.8在试一下也还是不行
    在这里插入图片描述
5.2 配置国内镜像加速器
# 创建Docker配置目录
mkdir -p /etc/docker

# 配置多个国内镜像源
cat > /etc/docker/daemon.json << 'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://registry.docker-cn.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}
EOF
5.2.1 docker拉取镜像测试报错:输出显示连接问题

在这里插入图片描述

  • 测试环境防火墙已关闭
  • ping registry-1.docker.io 发现ping不通
  • 尝试换一个国内镜像
5.2.2 更换DaoCloud 镜像加速器
vim /etc/docker/daemon.json

删除原配置,更换以下配置:

{
    "registry-mirrors": [
        "https://docker.m.daocloud.io"
    ]
}
  • 重启 Docker 服务:
systemctl daemon-reload
systemctl restart docker
  • 验证配置:
docker info | grep -A 5 "Registry Mirrors"
  • 测试拉取镜像:
docker pull nginx

拉取成功
在这里插入图片描述
且网络连通性良好

在这里插入图片描述

更多推荐