什么是注册表?

解释

现在您已经了解了什么是容器镜像以及它是如何工作的,您可能会想 - 这些镜像存储在哪里?

您可以将容器镜像存储在您的计算机系统上,但是如果您想与朋友共享它们或在另一台机器上使用它们呢?这时就需要用到镜像注册表了。

镜像注册表是用于存储和共享容器镜像的集中位置。它可以是公共的或私有的。Docker HubAmazon Elastic Container Registry(ECR)Azure Container Registry (ACR)Google Container Registry (GCR)。你甚至可以在本地系统或组织内部运行你的私有注册表。例如,Harbor、JFrog Artifactory、GitLab 容器注册表等。

注册表与仓库

在使用注册表时,你可能会听到注册表仓库这两个术语,仿佛它们可以互换使用。尽管它们相关,但它们并不完全相同。

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

下图显示了注册表、仓库和镜像之间的关系。

IIIIImmmmmaaaaagggggeeeeeR::R:::eeRpppppppeorrorrrgsoosoooiijjijjjsteeteeetoccocccrrttrtttyy--y---aabbbA::B:::vvvvv12112.....00010

**注意**

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

试用

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

注册免费 Docker 帐户

  1. 如果您还没有创建 Docker 帐户,请前往 Docker HubScreenshot of the official Docker Hub page showing the Sign up page

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

创建您的第一个仓库

  1. 登录到 Docker Hub

  2. 选择右上角的**创建仓库**按钮。

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

    Screenshot of the Docker Hub page that shows how to create a public repository
  4. 将可见性设置为**公共**。

  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 <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
    
  8. 打开 Docker Hub 并导航到您的仓库。导航到**标签**部分并查看新推送的镜像。

    Screenshot of the Docker Hub page that displays the newly added image tag

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

其他资源

后续步骤

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