2.3 使用注册中心

系列 - Docker快速入门

在使用 Docker 时,从默认的 Docker Hub 下载镜像可能会遇到网络问题,特别是在国内网络环境下。为解决这个问题,我们可以配置镜像加速器和使用私有镜像仓库。本实验将指导你完成这两项配置,帮助你更高效地使用 Docker。

  1. 配置 Docker 镜像加速
  2. 学习使用第三方镜像注册中心
  3. 复习 Docker 镜像的推送和拉取操作
信息
虽然 Docker 官方和阿里云曾提供公开的镜像加速服务,但目前这些服务已经不再对所有用户开放。在本实验中,我们将使用一个临时的第三方加速镜像来演示配置过程。

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

bash

docker pull ubuntu:14.04

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

下载失败

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

bash

vim /etc/docker/daemon.json

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

json

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

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

bash

systemctl restart docker

bash

docker info

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

bash

docker pull ubuntu:14.04

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

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

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

text

https://harbor.seahi.me

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

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

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

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

bash

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 是标签名

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

bash

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

如果遇到权限错误,可能需要先登录到 Harbor:

bash

docker login harbor.seahi.me

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

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

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

bash

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

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

bash

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

Docker 镜像的完整命名格式为:

text

注册中心地址/项目名/[仓库名]:[标签]
  • 注册中心地址:镜像所在的注册服务器,如 docker.io(Docker Hub,默认值)、harbor.seahi.me(我们使用的 Harbor 实例)
  • 项目名:在注册中心内的项目或命名空间,如 library(Docker Hub 官方镜像的命名空间)、stu00(我们在 Harbor 中创建的项目)
  • 仓库名:镜像的名称,如 ubuntunginxmysql 等
  • 标签:镜像的版本标识,如 14.04latest1.19 等

相关内容