什么是注册表?

解释

现在您已经知道什么是容器映像以及它是如何工作的,您可能想知道 - 将这些映像存储在哪里?

好吧,您可以将容器映像存储在计算机系统上,但是如果您想与朋友共享它们或在另一台计算机上使用它们怎么办?这就是图像注册表的用武之地。

镜像注册表是用于存储和共享容器镜像的集中位置。它可以是公共的或私人的。 Docker Hub是一个任何人都可以使用的公共注册表,并且是默认注册表。

虽然 Docker Hub 是一个流行的选项,但目前还有许多其他可用的容器注册表,包括 Amazon Elastic Container Registry (ECR)Azure Container Registry (ACR)Google Container Registry (GCR)。您甚至可以在本地系统或组织内部运行您的私有注册表。例如Harbor、JFrog Artifactory、GitLab 容器注册中心等。

注册表与存储库

当您使用注册表时,您可能会听到注册表存储库这两个术语,就好像它们是可以互换的一样。尽管它们有相关性,但它们并不完全相同。

注册表是存储和管理容器映像的集中位置,而存储是注册表中相关容器映像的集合。将其视为一个文件夹,您可以在其中根据项目组织图像。每个存储库都包含一个或多个容器映像。

笔记

您可以使用免费版本的 Docker Hub 创建一个私有存储库和无限个公共存储库。欲了解更多信息,请访问 Docker Hub 订阅页面

现在就试试

在本次实践中,您将学习如何构建 Docker 映像并将其推送到 Docker Hub 存储库。

注册一个免费的 Docker 帐户

  1. 如果您尚未创建,请前往 Docker Hub页面注册一个新的 Docker 帐户。

    显示注册页面的官方 Docker Hub 页面的屏幕截图

    您可以使用 Google 或 GitHub 帐户进行身份验证。

创建您的第一个存储库

  1. 登录 Docker Hub

  2. 选择右上角的“创建存储库”按钮。

  3. 选择您的命名空间(很可能是您的用户名)并输入docker-quickstart存储库名称。

    Docker Hub 页面的屏幕截图,显示如何创建公共存储库
  4. 将可见性设置为Public

  5. 选择“创建”按钮来创建存储库。

就是这样。您已成功创建第一个存储库。 ????

该存储库现在是空的。现在,您可以通过向其推送图像来解决此问题。

使用 Docker Desktop 登录

  1. 下载并安装Docker Desktop(如果尚未安装)。
  2. 在 Docker Desktop GUI 中,选择右上角的“登录”按钮

克隆示例 Node.js 代码

为了创建图像,您首先需要一个项目。为了快速入门,您将使用位于 github.com/dockersamples/helloworld-demo-node的示例 Node.js 项目。该存储库包含构建 Docker 映像所需的预构建 Dockerfile。

不必担心 Dockerfile 的具体细节,您将在后面的部分中了解这一点。

  1. 使用以下命令克隆 GitHub 存储库:

    git clone https://github.com/dockersamples/helloworld-demo-node
    
  2. 导航到新创建的目录。

    cd helloworld-demo-node
    
  3. 运行以下命令来构建 Docker 映像,并替换YOUR_DOCKER_USERNAME为您的用户名。

    docker build -t <YOUR_DOCKER_USERNAME>/docker-quickstart .
    

    笔记

    确保在命令末尾包含点 (.) docker build。这告诉 Docker 在哪里可以找到 Dockerfile。

  4. 运行以下命令列出新创建的 Docker 镜像:

    docker images
    

    您将看到如下输出:

    REPOSITORY                                 TAG       IMAGE ID       CREATED         SIZE
    <YOUR_DOCKER_USERNAME>/docker-quickstart   latest    476de364f70e   2 minutes ago   170MB
    
  5. 通过运行以下命令启动容器来测试图像(将用户名替换为您自己的用户名):

    docker run -d -p 8080:8080 <YOUR_DOCKER_USERNAME>/docker-quickstart 
    

    您可以通过使用浏览器访问http://localhost:8080 来验证容器是否正常工作 。

  6. 使用 docker tag命令来标记 Docker 镜像。 Docker 标签允许您对镜像进行标记和版本控制。

    docker tag <YOUR_DOCKER_USERNAME>/docker-quickstart <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0 
    
  7. 最后,是时候使用以下 docker push命令将新构建的映像推送到 Docker Hub 存储库了:

    docker push -u <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
    
  8. 打开 Docker Hub并导航到您的存储库。导航到“标签”部分并查看新推送的图像。

    显示新添加的镜像标签的 Docker Hub 页面的屏幕截图

在本演练中,您注册了 Docker 帐户,创建了第一个 Docker Hub 存储库,并构建、标记了容器映像并将其推送到 Docker Hub 存储库。

其他资源

下一步

现在您已经了解了容器和映像的基础知识,您可以开始了解 Docker Compose。