什么是镜像仓库?
原文: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 账户
如果你还没有创建,前往 Docker Hub 页面注册一个新的 Docker 账户。
你可以使用你的 Google 或 GitHub 账户进行认证。
创建你的第一个存储库
登录 Docker Hub。
在右上角选择创建存储库按钮。
选择你的命名空间(通常是你的用户名)并输入
docker-quickstart
作为存储库名称。将可见性设置为公开。
选择创建按钮以创建存储库。
就这样。你已成功创建了你的第一个存储库。🎉
这个存储库现在还是空的。你将通过推送一个镜像到其中来解决这个问题。
使用 Docker 桌面登录
- 如果还没有安装,下载并安装 Docker 桌面。
- 在 Docker 桌面 GUI 中,选择右上角的登录按钮
克隆示例 Node.js 代码
为了创建一个镜像,你首先需要一个项目。为了让你快速开始,你将使用一个位于 github.com/dockersamples/helloworld-demo-node 的示例 Node.js 项目。这个存储库包含构建 Docker 镜像所需的预制 Dockerfile。
不用担心 Dockerfile 的具体细节,因为你将在后面的部分学习它。
使用以下命令克隆 GitHub 存储库:
consolegit clone https://github.com/dockersamples/helloworld-demo-node
进入新创建的目录。
consolecd helloworld-demo-node
运行以下命令构建 Docker 镜像,将
YOUR_DOCKER_USERNAME
替换为你的用户名。consoledocker build -t <YOUR_DOCKER_USERNAME>/docker-quickstart .
注意
确保在
docker build
命令的末尾包含点(.)。这告诉 Docker 在哪里找到 Dockerfile。运行以下命令列出新创建的 Docker 镜像:
consoledocker images
你将看到如下输出:
consoleREPOSITORY TAG IMAGE ID CREATED SIZE <YOUR_DOCKER_USERNAME>/docker-quickstart latest 476de364f70e 2分钟前 170MB
运行以下命令启动一个容器来测试镜像(用你自己的用户名替换掉用户名):
consoledocker run -d -p 8080:8080 <YOUR_DOCKER_USERNAME>/docker-quickstart
你可以通过访问 http://localhost:8080 来验证容器是否工作正常。
使用
docker tag
命令为 Docker 镜像打标签。Docker 标签允许你给你的镜像贴上标签和版本。consoledocker tag <YOUR_DOCKER_USERNAME>/docker-quickstart <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
最后,使用
docker push
命令将新建立的镜像推送到你的 Docker Hub 存储库:consoledocker push <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
打开 Docker Hub 并导航到你的存储库。转到标签部分,查看你新推送的镜像。
在这个教程中,你注册了一个 Docker 账户,创建了你的第一个 Docker Hub 存储库,并构建、标记并推送了一个容器镜像到你的 Docker Hub 存储库。