什么是注册表?
解释
现在您已经了解了什么是容器镜像以及它是如何工作的,您可能会想 - 这些镜像存储在哪里?
您可以将容器镜像存储在您的计算机系统上,但是如果您想与朋友共享它们或在另一台机器上使用它们呢?这时就需要用到镜像注册表了。
镜像注册表是用于存储和共享容器镜像的集中位置。它可以是公共的或私有的。Docker Hub,Azure Container Registry (ACR)
注册表与仓库
在使用注册表时,你可能会听到注册表和仓库这两个术语,仿佛它们可以互换使用。尽管它们相关,但它们并不完全相同。
注册表是一个集中存储和管理容器镜像的位置,而仓库是注册表中相关容器镜像的集合。可以将其视为一个文件夹,您可以在其中根据项目组织镜像。每个仓库包含一个或多个容器镜像。
下图显示了注册表、仓库和镜像之间的关系。
**注意** 您可以使用 Docker Hub 的免费版本创建一个私有仓库和无限数量的公共仓库。有关更多信息,请访问 Docker Hub 订阅页面
。
试用
在本实践中,您将学习如何构建 Docker 镜像并将其推送到 Docker Hub 仓库。
注册免费 Docker 帐户
如果您还没有创建 Docker 帐户,请前往 Docker Hub
您可以使用您的 Google 或 GitHub 帐户进行身份验证。
创建您的第一个仓库
登录到 Docker Hub
。选择右上角的**创建仓库**按钮。
选择您的命名空间(很可能是您的用户名)并输入 `docker-quickstart` 作为仓库名称。
将可见性设置为**公共**。
选择**创建**按钮以创建仓库。
就是这样。您已成功创建了第一个仓库。🎉
此仓库现在为空。您现在将通过推送镜像来解决此问题。
使用 Docker Desktop 登录
- 下载并安装
Docker Desktop(如果尚未安装)。 - 在 Docker Desktop GUI 中,选择右上角的**登录**按钮
克隆示例 Node.js 代码
要创建镜像,您首先需要一个项目。为了帮助您快速入门,您将使用位于 github.com/dockersamples/helloworld-demo-node
不必担心 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
您可以通过浏览器访问 http://localhost:8080
来验证容器是否正在工作。使用
docker tag
命令标记 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 了。