Skip to content

Docker - 公共仓库

Docker Hub 允许您通过将自定义 Docker 镜像(images)推送到公共仓库(repositories)来与全世界共享。这对于开源项目或分发工具和应用程序非常有用。

本章概述了构建本地镜像、为其在 Docker Hub 上进行适当标记(tag)以及将其推送到与您的 Docker ID 关联的公共仓库的步骤。

假设您已经构建了一个本地镜像,例如 myimage:0.1(在“构建 Docker 文件”章节中创建)。

# 验证本地镜像是否存在
docker images

步骤 1: 通过 CLI 登录 Docker Hub

在推送镜像之前,您需要使用您的 Docker Hub 凭据(credentials)进行身份验证。

docker login

在提示时输入您的 Docker ID(用户名)和密码。将显示成功的登录消息。

步骤 2: 为您的本地镜像打标签

在推送(pushing)之前,您必须使用包含您的 Docker Hub 用户名和所需仓库名称的名称为本地镜像打标签。格式是 your-dockerhub-username/repository-name:tag。

让我们为本地镜像 myimage:0.1 打标签,以便将其推送到您用户名下的一个名为 demorep 的仓库(将 yourdockerhubusername 替换为您实际的 Docker ID)。

# docker tag <源镜像>:<源标签> <hub 用户>/<仓库名称>:<目标标签>
docker tag myimage:0.1 yourdockerhubusername/demorep:1.0

此命令创建一个新标签 (yourdockerhubusername/demorep:1.0),该标签指向与 myimage:0.1 相同的镜像 ID(image ID)。它不会复制镜像数据。

您可以使用 docker images 验证新标签是否存在。

步骤 3: 推送已打标签的镜像 (docker push)

现在,使用 docker push 命令和完全限定的标签名称,将镜像层(image layers)上传到 Docker Hub。

docker push yourdockerhubusername/demorep:1.0

Docker 将在推送每个层(layer)时显示进度。如果该仓库 (demorep) 在您的 Docker Hub 账户下尚不存在,Docker Hub 通常会在首次推送时自动将其创建为公共仓库。

步骤 4: 在 Docker Hub 上验证(可选)

登录 Docker Hub 网站 (https://hub.docker.com/)。导航到您的仓库,您应该会找到包含 1.0 标签的 demorep 仓库。

现在,任何人(包括您自己在使用不同机器或移除本地镜像后)都可以从 Docker Hub 拉取(pull)并运行您的镜像。

步骤 5: 移除本地镜像(可选,用于测试拉取)

# 移除指向 Docker Hub 仓库的特定标签
docker rmi yourdockerhubusername/demorep:1.0
# (可选)也移除原始的本地标签
# docker rmi myimage:0.1

步骤 6: 从 Docker Hub 拉取镜像

docker pull yourdockerhubusername/demorep:1.0

Docker 将从 Docker Hub 下载镜像。您现在已成功构建(built)、推送(pushed)和拉取(pulled)了一个公共 Docker 镜像。