共享应用程序
现在你已经构建了一个镜像,你可以共享它。要共享 Docker 镜像,你必须使用 Docker 注册表。默认注册表是 Docker Hub,你使用的所有镜像都来自这里。
Docker ID
Docker ID 让你可以访问 Docker Hub,这是世界上最大的容器镜像库和社区。如果没有 Docker ID,可以免费注册一个 Docker ID。
创建仓库
要推送镜像,你首先需要在 Docker Hub 上创建一个仓库。
-
注册 或登录 Docker Hub。
-
选择 Create Repository 按钮。
-
仓库名称使用
getting-started。确保 Visibility 为 Public。 -
选择 Create。
在下图中,你可以看到 Docker Hub 上的示例 Docker 命令。此命令将推送到此仓库。
推送镜像
让我们尝试将镜像推送到 Docker Hub。
-
在命令行中,运行以下命令:
docker push docker/getting-started你会看到类似这样的错误:
$ 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这个失败是预期的,因为镜像还没有正确标记。Docker 正在查找名为
docker/getting-started的镜像名称,但你的本地镜像仍然命名为getting-started。你可以通过运行以下命令来确认这一点:
docker image ls -
要解决这个问题,首先使用你的 Docker ID 登录 Docker Hub:
docker login -u YOUR-USER-NAME。 -
使用
docker tag命令为getting-started镜像赋予新名称。将YOUR-USER-NAME替换为你的 Docker ID。$ docker tag getting-started YOUR-USER-NAME/getting-started -
现在再次运行
docker push命令。如果你从 Docker Hub 复制值,可以省略tagname部分,因为你没有为镜像名称添加标签。如果你不指定标签,Docker 使用一个名为latest的标签。$ docker push YOUR-USER-NAME/getting-started
在新实例上运行镜像
现在你的镜像已经构建并推送到注册表中,你可以在任何安装了 Docker 的机器上运行你的应用程序。尝试在另一台计算机或云实例上拉取并运行你的镜像。
总结
在本节中,你学习了如何通过将镜像推送到注册表来共享你的镜像。然后你去了一个全新的实例,能够运行刚刚推送的镜像。这在 CI 管道中很常见,管道会创建镜像并将其推送到注册表,然后生产环境可以使用最新版本的镜像。
相关信息:
下一步
在下一节中,你将学习如何在容器化应用程序中持久化数据。
Persist the DB