什么是注册表?
说明
既然你已经了解了什么是容器镜像以及它是如何工作的,你可能会想——这些镜像应该存储在哪里呢?
嗯,你可以在你的计算机系统上存储你的容器镜像,但是如果你想和你的朋友分享它们,或者在另一台机器上使用它们呢?这就是镜像仓库发挥作用的地方了。
镜像仓库是存储和共享容器镜像的集中位置。它可以是公共的或私有的。 Docker Hub 是一个任何人都可以使用的公共仓库,也是默认的仓库。
虽然 Docker Hub 是一个受欢迎的选择,但今天还有许多其他可用的容器注册表,包括 Amazon Elastic Container Registry(ECR), Azure Container Registry (ACR), 和 Google Container Registry (GCR)。您甚至可以在本地系统或组织内部运行自己的私有注册表。例如,Harbor、JFrog Artifactory、GitLab Container registry 等。
注册表与仓库
在使用注册表时,您可能会听到 registry 和 repository 这两个术语,好像它们可以互换使用。虽然它们相关,但并不完全相同。
仓库是一个存储和管理容器镜像的集中位置,而仓库是注册表中相关容器镜像的集合。可以把它想象成一个根据项目组织镜像的文件夹。每个仓库包含一个或多个容器镜像。
下图展示了注册表、仓库和镜像之间的关系。
注意
使用 Docker Hub 的免费版本,您可以创建一个私有仓库和无限数量的公共仓库。有关更多信息,请访问 Docker Hub 订阅页面。
试用
在这个动手实践中,您将学习如何构建 Docker 镜像并将其推送到 Docker Hub 仓库。
注册免费的 Docker 账户
如果您还没有创建一个,请前往 Docker Hub 页面注册一个新的 Docker 账户。

您可以使用您的 Google 或 GitHub 账户进行身份验证。
创建您的第一个仓库
登录到 Docker Hub。
Select the Create repository button in the top-right corner.
选择您的命名空间(通常是您的用户名)并输入
docker-quickstart作为仓库名称。

将可见性设置为 公开。
选择 创建 按钮以创建仓库。
就是这样。您已成功创建了您的第一个仓库。🎉
此仓库目前为空。您现在可以通过向其推送镜像来解决此问题。
使用 Docker Desktop 登录
- 下载并安装 Docker Desktop(如果尚未安装)。
- 在 Docker Desktop 图形用户界面中,选择右上角的 登录 按钮
克隆示例 Node.js 代码
为了创建镜像,您首先需要一个项目。为了帮助您快速开始,您将使用位于 github.com/dockersamples/helloworld-demo-node 的示例 Node.js 项目。此仓库包含构建 Docker 镜像所需的预构建 Dockerfile。
不用担心 Dockerfile 的具体细节,您将在后续章节中了解到这些内容。
使用以下命令克隆 GitHub 仓库:
git clone https://github.com/dockersamples/helloworld-demo-node导航到新创建的目录。
cd helloworld-demo-node运行以下命令来构建 Docker 镜像,将
YOUR_DOCKER_USERNAME替换为您的用户名。docker build -t <YOUR_DOCKER_USERNAME>/docker-quickstart .注意
确保在
docker build命令末尾包含点(.)。这告诉 Docker 在哪里找到 Dockerfile。运行以下命令以列出新创建的 Docker 镜像:
docker images您将看到类似以下的输出:
REPOSITORY TAG IMAGE ID CREATED SIZE <YOUR_DOCKER_USERNAME>/docker-quickstart latest 476de364f70e 2 minutes ago 170MB通过运行以下命令启动容器以测试镜像(请将 username 替换为您自己的用户名):
docker run -d -p 8080:8080 <YOUR_DOCKER_USERNAME>/docker-quickstart您可以通过浏览器访问 http://localhost:8080 来验证容器是否正常运行。
使用
docker tag命令来标记 Docker 镜像。Docker 标签允许您对镜像进行标记和版本控制。docker tag <YOUR_DOCKER_USERNAME>/docker-quickstart <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0最后,是时候通过使用
docker push命令将新构建的镜像推送到您的 Docker Hub 仓库:docker push <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0打开 Docker Hub 并导航到您的仓库。导航到 Tags 部分并查看您新推送的镜像。

在本教程中,您注册了 Docker 账户,创建了您的第一个 Docker Hub 仓库,并构建、标记和推送了一个容器镜像到您的 Docker Hub 仓库。
其他资源
后续步骤
既然您已经了解了容器和镜像的基础知识,那么您准备好学习 Docker Compose 了。