2.3 使用注册中心

在使用 Docker 时,从默认的 Docker Hub 下载镜像可能会遇到网络问题,特别是在国内网络环境下。为解决这个问题,我们可以配置镜像加速器和使用私有镜像仓库。本实验将指导你完成这两项配置,帮助你更高效地使用 Docker。
实验目标
- 配置 Docker 镜像加速
- 学习使用第三方镜像注册中心
- 复习 Docker 镜像的推送和拉取操作
一、配置加速镜像
1. 验证当前下载速度
首先,我们尝试直接从 Docker Hub 下载一个镜像,观察是否存在网络问题:
docker pull ubuntu:14.04
如果出现类似下图的超时错误,说明我们需要配置镜像加速:
2. Docker 守护进程配置文件
使用文本编辑器创建或修改 Docker 的配置文件:
vim /etc/docker/daemon.json
3. 添加镜像加速配置
在配置文件中添加以下内容:
{
"registry-mirrors": ["https://hub.seahi.me"]
}
这里的 https://hub.seahi.me
是我们使用的第三方镜像加速地址。
4. 重启Docker服务
systemctl restart docker
5.验证是否生效
docker info
在输出信息中,应该能看到 “Registry Mirrors” 部分包含了我们配置的加速地址:
6. 测试下载镜像
docker pull ubuntu:14.04
二、使用第三方注册中心
除了使用镜像加速器外,我们还可以使用私有镜像仓库来存储和分发 Docker 镜像。在本实验中,我们将使用 Harbor 作为第三方注册中心。
1. 访问并登录 Harbor 平台
打开浏览器,访问 Harbor 平台:
https://harbor.seahi.me
使用提供的账号密码登录系统。
2. 创建项目
登录后,创建一个新项目用于存储你的镜像:
- 点击"新建项目"按钮
- 项目名称设置为
stu00
(请将 00 替换为你的学号后两位) - 设置适当的访问级别(公开或私有)
- 点击"确定"创建项目
3. 推送本地镜像到 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
如果遇到权限错误,可能需要先登录到 Harbor:
docker login harbor.seahi.me
然后输入你的 Harbor 账号和密码。
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
附:镜像命名规则详解
Docker 镜像的完整命名格式为:
注册中心地址/项目名/[仓库名]:[标签]
- 注册中心地址:镜像所在的注册服务器,如
docker.io
(Docker Hub,默认值)、harbor.seahi.me
(我们使用的 Harbor 实例) - 项目名:在注册中心内的项目或命名空间,如
library
(Docker Hub 官方镜像的命名空间)、stu00
(我们在 Harbor 中创建的项目) - 仓库名:镜像的名称,如
ubuntu
、nginx
、mysql
等 - 标签:镜像的版本标识,如
14.04
、latest
、1.19
等