摘要

在使用 Docker 时,从默认的 Docker Hub 下载镜像可能会遇到网络问题,特别是在国内网络环境下。为解决这个问题,我们可以配置镜像加速器或使用私有镜像仓库。

镜像加速与自建注册中心
镜像加速与自建注册中心

任务一、配置加速镜像

信息

虽然 Docker 官方和阿里云曾提供公开的镜像加速服务,但目前这些服务已经不再对所有用户开放。在本实验中,我们将使用一个临时的第三方加速镜像来演示配置过程。

1. 验证当前下载速度

首先,我们尝试直接从 Docker Hub 下载一个镜像,观察是否存在网络问题:

docker pull ubuntu:14.04

如果出现类似下图的超时错误,说明我们需要配置镜像加速:

下载失败
下载失败

2. 修改 Docker 配置文件

使用文本编辑器创建或修改 Docker 的配置文件:

/etc/docker/daemon.json

在配置文件中添加以下内容:

{
    "registry-mirrors": ["https://docker.seahi.me"]
}

这里的 https://docker.seahi.me 是我们使用的第三方镜像加速地址。

重启Docker服务

systemctl restart docker

3.验证是否生效

docker info

在输出信息中,应该能看到 Registry Mirrors 部分包含了我们配置的加速地址:

加速镜像
加速镜像

4. 测试下载镜像

docker pull ubuntu:14.04

任务二、使用第三方注册中心

除了使用镜像加速器外,我们还可以使用私有镜像仓库来存储和分发 Docker 镜像。在本实验中,我们将使用 Harbor 作为第三方注册中心。

信息

Harbor 是一个开源的企业级 Docker 镜像仓库管理项目,提供了镜像管理、RBAC 访问控制、镜像复制等功能,适合企业内部使用。

1. 访问并登录 Harbor 平台

打开浏览器,访问 Harbor 平台:

https://harbor.seahi.me

使用提供的账号密码登录系统。

2. 创建项目

登录后,创建一个新项目用于存储你的镜像:

  • 点击"新建项目"按钮
  • 项目名称设置为 stu00(请将 00 替换为你的学号后两位)
  • 设置适当的访问级别(公开或私有)
  • 点击"确定"创建项目

3. 推送本地镜像到 Harbor

先将本地 Docker 登录到 Harbor:

docker login harbor.seahi.me

然后输入你的 Harbor 账号和密码。

3.1 重新标记本地镜像

Docker 通过镜像名称来决定推送的目标位置。要将本地镜像推送到 Harbor,首先需要按照 Harbor 的命名规则重新标记镜像:

docker tag ubuntu:14.04 harbor.seahi.me/stu00/ubuntu:14.04

这个命令将本地的 ubuntu:14.04 镜像重新标记为 harbor.seahi.me/stu00/ubuntu:14.04,其中:

  • harbor.seahi.me 是注册中心地址
  • stu00 是项目名称(请替换为你创建的项目名)
  • ubuntu 是仓库名
  • 14.04 是标签名

3.2 推送镜像到 Harbor

使用 docker push 命令将重新标记的镜像推送到 Harbor:

docker push harbor.seahi.me/stu00/ubuntu:14.04

需要把 stu00 换成你的项目名

3.3 验证推送结果

推送完成后,在 Harbor 网页界面中打开你的项目,应该能看到刚刚推送的镜像。

4. 从 Harbor 拉取镜像

4.1 删除本地镜像

为了测试从 Harbor 拉取镜像,先删除本地的相关镜像:

# 删除重新标记的镜像
docker rmi harbor.seahi.me/stu00/ubuntu:14.04
# 删除原始镜像
docker rmi ubuntu:14.04

4.2 从 Harbor 拉取镜像

使用 docker pull 命令从 Harbor 拉取镜像:

docker pull harbor.seahi.me/stu00/ubuntu:14.04