分享申请

预计阅读时间:4分钟

现在我们已经建立了图像,让我们共享它!要共享Docker映像,您必须使用Docker注册表。默认注册表是Docker Hub,这是我们使用过的所有映像的来源。

Docker ID

Docker ID可让您访问Docker Hub,它是世界上最大的容器映像库和社区。如果您没有,则免费创建一个Docker ID

创建一个仓库

要推送映像,我们首先需要在Docker Hub上创建一个存储库。

  1. 使用Docker Hub注册并共享图像。

  2. 登录到Docker Hub

  3. 单击创建存储库按钮。

  4. 对于回购名称,请使用getting-started。确保“可见性”为Public

    私人仓库

    您是否知道Docker提供了私有存储库,使您可以将内容限制为特定用户或团队?在Docker定价页面上查看详细信息。

  5. 单击创建按钮!

如果您在页面的右侧看,将会看到名为Docker命令的部分。这给出了一个示例命令,您将需要运行该命令才能推送到该存储库。

带有推示例的Docker命令

推图片

  1. 在命令行中,尝试运行在Docker Hub上看到的push命令。请注意,您的命令将使用名称空间,而不是“ docker”。

     $ docker push docker/getting-started
     The push refers to repository [docker.io/docker/getting-started]
     An image does not exist locally with the tag: docker/getting-started
    

    为什么失败了?push命令正在寻找一个名为docker / getting-started的映像,但是没有找到。如果您运行docker image ls,您也不会看到任何一个。

    要解决此问题,我们需要“标记”我们已经构建的现有图像以为其命名。

  2. 使用命令登录Docker Hub docker login -u YOUR-USER-NAME

  3. 使用docker tag命令为getting-started图像重新命名。确保交换出 YOUR-USER-NAME您的Docker ID。

     docker tag getting-started YOUR-USER-NAME/getting-started
    
  4. 现在,再试一次您的push命令。如果要从Docker Hub复制值,则可以删除该 tagname部分,因为我们没有在映像名称中添加标签。如果您未指定标签,则Docker将使用名为的标签latest

     docker push YOUR-USER-NAME/getting-started
    

在新实例上运行映像

现在我们的映像已构建并推送到注册表中,让我们尝试在从未见过此容器映像的全新实例上运行我们的应用程序!为此,我们将Play与Docker结合使用。

  1. 打开浏览器以与Docker一起

  2. 单击登录,然后从下拉列表中选择泊坞窗

  3. 与您的Docker Hub帐户连接。

  4. 登录后,单击左侧栏中的“添加新实例”选项。如果看不到它,请将您的浏览器扩大一点。几秒钟后,将在浏览器中打开一个终端窗口。

    玩Docker添加新实例

  5. 在终端中,启动您刚推送的应用程序。

     docker run -dp 3000:3000 YOUR-USER-NAME/getting-started
    

    您应该看到图像被拉下并最终启动!

  6. 点击出现的3000徽章,您应该会看到带有修改的应用程序!万岁!如果没有显示3000徽章,则可以单击“打开端口”按钮并输入3000。

回顾

在本节中,我们学习了如何通过将图像推送到注册表来共享图像。然后,我们转到一个全新的实例,并能够运行新推送的映像。这在CI管道中很常见,在管道中,管道将创建映像并将其推送到注册表,然后生产环境可以使用映像的最新版本。

现在我们已经弄清楚了,让我们回到上一节末尾注意到的内容。提醒一下,我们注意到重新启动应用程序时,我们丢失了所有待办事项列表项。显然,这不是很好的用户体验,因此让我们学习如何在重新启动之间持久保存数据!

入门设置方向快速入门介绍概念容器docker桌面docker中心共享