Skip to content

什么是镜像仓库?

原文:https://docs.docker.com/guides/docker-concepts/the-basics/what-is-a-registry/

解释

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

好吧,你可以在你的计算机系统上存储容器镜像,但如果你想与你的朋友分享它们或在另一台机器上使用它们怎么办?这就是镜像仓库的用武之地了。

镜像仓库是一个用于存储和共享容器镜像的集中式位置。它可以是公开的也可以是私有的。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. 将可见性设置为公开

  5. 选择创建按钮以创建存储库。

就这样。你已成功创建了你的第一个存储库。🎉

这个存储库现在还是空的。你将通过推送一个镜像到其中来解决这个问题。

使用 Docker 桌面登录

  1. 如果还没有安装,下载并安装 Docker 桌面。
  2. 在 Docker 桌面 GUI 中,选择右上角的登录按钮

克隆示例 Node.js 代码

为了创建一个镜像,你首先需要一个项目。为了让你快速开始,你将使用一个位于 github.com/dockersamples/helloworld-demo-node 的示例 Node.js 项目。这个存储库包含构建 Docker 镜像所需的预制 Dockerfile。

不用担心 Dockerfile 的具体细节,因为你将在后面的部分学习它。

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

    console
    git clone https://github.com/dockersamples/helloworld-demo-node
  2. 进入新创建的目录。

    console
    cd helloworld-demo-node
  3. 运行以下命令构建 Docker 镜像,将YOUR_DOCKER_USERNAME替换为你的用户名。

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

    注意

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

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

    console
    docker images

    你将看到如下输出:

    console
    REPOSITORY                                 TAG       IMAGE ID       CREATED         SIZE
    <YOUR_DOCKER_USERNAME>/docker-quickstart   latest    476de364f70e   2分钟前        170MB
  5. 运行以下命令启动一个容器来测试镜像(用你自己的用户名替换掉用户名):

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

    你可以通过访问 http://localhost:8080 来验证容器是否工作正常。

  6. 使用docker tag命令为 Docker 镜像打标签。Docker 标签允许你给你的镜像贴上标签和版本。

    console
    docker tag <YOUR_DOCKER_USERNAME>/docker-quickstart <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
  7. 最后,使用docker push命令将新建立的镜像推送到你的 Docker Hub 存储库:

    console
    docker push <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
  8. 打开 Docker Hub 并导航到你的存储库。转到标签部分,查看你新推送的镜像。

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

在这个教程中,你注册了一个 Docker 账户,创建了你的第一个 Docker Hub 存储库,并构建、标记并推送了一个容器镜像到你的 Docker Hub 存储库。

额外资源