跳转至

无法访问Docker官网,国内如何合规高效安装Docker软件

背景分析

容器镜像本质还是对文件的一种组织管理方式,而且 Docker Hub 是一个开放性的容器镜像托管平台,因此对于其分发的文件内容需要符合地方的法律法规,在没有完成合规的改造前应该无法直接面向国内提供服务。

虽然 Docker 无法直接面向国内提供服务,但是国内的企业和科研单位可以对部分内容进行审核后,以合规的方式进行服务提供。比如阿里云、腾讯云各大云厂商,以及清华大学、华中科技大学等科研组织提供的 docker-ce 软件源服务(文章末尾有链接)。

本文最佳实践的合规基础就是基于上述企业和科研组织的合规 docker-ce 软件源。

docker logo

最佳安装方式

Docker的安装有很多种方式,比如基于源码安装、基于二进制文件安装、基于 get-docker.sh 安装、基于 YUM/DNF/APT 等软件包管理工具安装等等。

本最佳实践推荐以软件包管理工具的安装方式,其他安装方式各有特点,也都有其适合的应用场景,建议在入门后再进行深入探索。

示例通过 YUM 的方式使用阿里云的软件源进行安装配置。

如果你之前安装过 或者系统预置了docker,再次进行安装时会因为软件包存在冲突而无法安装,需要先进行卸载

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

可以通过执行 docker 命令来判断是否卸载完成。

对比了云厂商和大学的安装方式,阿里云通过安装自己的 repo 方式,清华和华科的是先安装 Docker 官方的 repo,然后通过 sed 进行地址替换。

本质上就是3步:获取软件源repo、安装软件,以及启动服务

# 步骤1: 获取 docker-ce 软件源的 yum repo
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo > /etc/yum.repos.d/docker-ce.repo

# 步骤2:安装Docker
sudo yum install docker-ce \
                 docker-ce-cli \
                 containerd.io \
                 docker-buildx-plugin \
                 docker-compose-plugin

# 步骤3:启动 docker 并设置开机启动
sudo systemctl start docker
sudo systemctl enable docker

安装过程没有出现异常,可以正常执行 docker version 或 docker ps 命令即安装完成。

安装指定版本 Docker

默认安装最新版本的 Docker,如果想安装指定版本的 Docker 可以先查找当前软件源支持的软件版本列表,然后进行安装

# 第1步:查找可用的安装版本
yum list docker-ce.x86_64 --showduplicates

# 第2步:安装指定版本的 docker
yum install docker-ce-3:26.1.2-1.el8

查看支持的软件包列表

yum list

安装指定版本的 docker-ce

yum install docker

在进行安装包名称指定时需要注意:

  • 软件包名称不需要添加 CPU 架构信息,如 docker-ce.x86_64 使用 docker-ce 部分即可。
  • 软件包名称与版本号通过中横线链接。

到这里已经完成了 Docker 的安装,如果想在 MacOS 或 Windows 上安装,可以在参考链接中查找并下载对应的安装包即可。

下一步使用 Docker 时必然会遇到的一个问题是,无法访问 hub.docker.com 又该如何 docker pull 拉取镜像运行呢?-- 请关注后续文章为您提供最佳实践的方式,特别说明不是通过配置镜像代理的不合规方式哦!!!

软件源链接