什么是注册中心?

解释

既然您知道了什么是容器镜像以及它是如何工作的,您可能会想——这些镜像存放在哪里?

嗯,您可以将容器镜像存储在您的计算机系统上,但如果您想与朋友分享或在另一台机器上使用它们呢?这就是镜像注册中心(image registry)发挥作用的地方。

镜像注册中心是用于存储和共享容器镜像的集中式位置。它可以是公共的,也可以是私有的。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)这两个术语,好像它们可以互换使用。尽管它们相关,但并不完全相同。

注册中心是存储和管理容器镜像的集中式位置,而仓库是注册中心内相关容器镜像的集合。可以把它想象成一个文件夹,您可以在其中根据项目组织您的镜像。每个仓库包含一个或多个容器镜像。

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

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

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

试一试

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

注册免费的 Docker 帐户

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

    Screenshot of the official Docker Hub page showing the Sign up page

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

创建您的第一个仓库

  1. 登录 Docker Hub

  2. 选择右上角的 Create repository 按钮。

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

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

  5. 选择 Create 按钮以创建仓库。

就这样。您已成功创建了您的第一个仓库。🎉

这个仓库现在是空的。您现在将通过推送一个镜像来填充它。

使用 Docker Desktop 登录

  1. 如果尚未安装,请下载并安装 Docker Desktop。
  2. 在 Docker Desktop 图形界面中,选择右上角的 Sign in(登录)按钮。

克隆 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 
    

    您可以通过在浏览器中访问 https://: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 并导航到您的仓库。导航到 Tags(标签)部分,查看您新推送的镜像。

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

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

其他资源

后续步骤

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

什么是 Docker Compose?
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.