介绍
Docker 镜像仓库(Registry)是一个允许我们存储、管理和分发 Docker 镜像的平台。虽然使用像 Docker Hub 这样的云端镜像仓库很方便,但它们也存在一定的限制。在本次挑战中,我们将学习如何搭建一个本地 Docker 镜像仓库,从而让我们能够更自主地控制 Docker 镜像,并支持离线工作。
搭建 Docker 镜像仓库
本次挑战的第一步是搭建本地 Docker 镜像仓库。为此,我们将利用 Docker 官方提供的 registry 镜像。
目标
本步骤的目标是成功搭建一个 Docker 镜像仓库。
结果示例
以下是搭建 Docker 镜像仓库的步骤:
- 拉取
registry镜像。

- 在
/home/labex路径下创建一个名为dockerregistry的目录,以便于容器镜像的数据持久化。

- 使用
registry镜像运行一个名为my-registry的容器,映射端口,并将你创建的dockerregistry目录挂载为数据卷以实现数据持久化。

- 使用
curl命令验证镜像仓库是否可用。

完成此步骤后,你的本地机器上将运行一个 Docker 镜像仓库实例。
向 Docker 镜像仓库推送镜像
现在我们的 Docker 镜像仓库已经启动并运行,是时候看看它的实际效果了!在这一步中,我们将获取一个示例 Docker 镜像并将其推送到本地 Docker 镜像仓库。
目标
本步骤的目标是将一个镜像推送到本地 Docker 镜像仓库。
结果示例
以下是将镜像推送到本地 Docker 镜像仓库的步骤:
- 从 Docker Hub 拉取
hello-world镜像。

- 使用我们的镜像仓库地址为
hello-world镜像创建一个新标签(Tag)。

- 将
hello-world镜像推送到我们的镜像仓库。

完成此步骤后,你将成功把一个 Docker 镜像推送到本地 Docker 镜像仓库中。
从 Docker 镜像仓库拉取镜像
Docker 镜像仓库目前正在运行,并且已经存放了我们的示例镜像。在这一步中,我们将演示如何从本地 Docker 镜像仓库中拉取镜像。
目标
本步骤的目标是从镜像仓库中拉取镜像。
结果示例
以下是从本地 Docker 镜像仓库拉取镜像的步骤:
- 使用
docker rmi命令删除本地已标记为本地仓库地址的hello-world镜像副本。

- 从你的本地 Docker 镜像仓库拉取镜像。

- 为你刚刚拉取的镜像运行一个容器。

完成此步骤后,你将完成从本地镜像仓库拉取 Docker 镜像的操作。
总结
在本次挑战中,你学习了如何搭建本地 Docker 镜像仓库、如何向镜像仓库推送镜像以及如何从镜像仓库拉取镜像。通过使用本地 Docker 镜像仓库,你可以更好地掌控自己的 Docker 镜像并实现离线工作。恭喜你完成了挑战!



