Share the application

预计阅读时间:4分钟

现在我们已经构建了一个图像,让我们分享它! 要共享 Docker 映像,您必须使用 Docker 注册表. 默认注册表是 Docker Hub,我们使用的所有镜像都来自这里.

码头工人 ID

Docker ID 允许您访问 Docker Hub,它是世界上最大的容器镜像库和社区. 如果您没有Docker ID ,请免费创建一个.

Create a repo

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

  1. 注册或登录Docker Hub .

  2. 单击创建存储库按钮.

  3. 对于 repo 名称,使用getting-started . 确保 Visibility 是Public .

    私有存储库

    您是否知道 Docker 提供私有存储库,允许您将内容限制为特定用户或团队? 查看Docker 定价页面上的详细信息.

  4. 点击创建按钮!

如果您查看下图,可以看到一个示例Docker 命令. 此命令将推送到此 repo.

Docker command with push example

Push the image

  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 login -u YOUR-USER-NAME登录到 Docker Hub.

  3. 使用docker tag命令为getting-started映像指定一个新名称. 请务必将YOUR-USER-NAME替换为您的 Docker ID.

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

     $ docker push YOUR-USER-NAME/getting-started
    

Run the image on a new instance

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

  1. 打开浏览器玩 Docker .

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

  3. 连接到您的 Docker Hub 帐户.

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

    Play with Docker add new instance

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

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

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

  6. 当它出现时单击 3000 徽章,您应该会看到带有您修改的应用程序! 万岁! 如果 3000 徽章没有出现,您可以点击"Open Port"按钮并输入 3000.

Recap

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

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

开始, setup, orientation, quickstart, intro, concepts, containers, 码头工人桌面, 码头枢纽, sharing

by  icopy.site