什么是注册表?
解释
既然您知道了什么是容器镜像以及它的工作原理,您可能想知道 - 您在哪里存储这些镜像?
嗯,您可以将容器镜像存储在您的计算机系统上,但如果您想与朋友分享它们或在另一台机器上使用它们怎么办?这就是镜像注册表发挥作用的地方。
镜像注册表是用于存储和共享您的容器镜像的集中位置。它可以是公共的也可以是私有的。Docker Hub 是一个任何人都可以使用的公共注册表,也是默认的注册表。
虽然 Docker Hub 是一个流行的选择,但今天还有许多其他可用的容器注册表,包括 Amazon Elastic Container Registry(ECR), Azure Container Registry (ACR), 以及 Google Container Registry (GCR)。您甚至可以在本地系统或组织内部运行您的私有注册表。例如,Harbor、JFrog Artifactory、GitLab Container registry 等。
注册表与仓库
在使用注册表时,您可能会听到注册表和仓库这两个词,就好像它们是可互换的。虽然它们是相关的,但并不完全相同。
注册表是存储和管理容器镜像的集中位置,而仓库是注册表中相关容器镜像的集合。可以将其想象成一个文件夹,您根据项目对镜像进行组织。每个仓库包含一个或多个容器镜像。
下图显示了注册表、仓库和镜像之间的关系。
注意
使用 Docker Hub 的免费版本,您可以创建一个私有仓库和无限个公共仓库。有关更多信息,请访问 Docker Hub 订阅页面。
试一试
在本动手操作中,您将学习如何构建 Docker 镜像并将其推送到 Docker Hub 仓库。
注册免费的 Docker 账户
如果您还没有创建,请前往 Docker Hub 页面注册一个新的 Docker 账户。
您可以使用您的 Google 或 GitHub 账户进行身份验证。
创建您的第一个仓库
登录 Docker Hub。
选择右上角的创建仓库按钮。
选择您的命名空间(很可能是您的用户名),并将
docker-quickstart
作为仓库名称输入。将可见性设置为公开。
选择创建按钮创建仓库。
就这样,您已成功创建了您的第一个仓库。🎉
这个仓库现在是空的。您现在将通过向其推送镜像来解决这个问题。
使用 Docker Desktop 登录
- 下载并安装 Docker Desktop(如果尚未安装)。
- 在 Docker Desktop GUI 中,选择右上角的登录按钮
克隆 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
通过运行以下命令启动容器来测试镜像(将用户名替换为您的用户名)
docker run -d -p 8080:8080 <YOUR_DOCKER_USERNAME>/docker-quickstart
您可以通过在浏览器中访问 https://127.0.0.1:8080 命令标记 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 并导航到您的仓库。导航到**标签**部分,查看您新推送的镜像。
在本教程中,您注册了 Docker 帐户,创建了第一个 Docker Hub 仓库,并构建、标记并将容器镜像推送到您的 Docker Hub 仓库。
其他资源
下一步
现在您已经了解了容器和镜像的基础知识,您就可以开始学习 Docker Compose。