现在您已经构建一个映像可以共享它。要共享Docker映像,您必须使用Docker注册表默认注册表是Docker Hub,是您使用的所有图像来源

Docker ID(Docker标识
Docker ID允许您访问Docker Hub,这是世界最大容器映像库和社区。如果没有Docker ID,请免费创建

 一、创建存储

推送映像,首先需要在Docker Hub创建存储库。

下图中,您可以看到来自Docker Hub的Docker命令示例。该命令将推送到该存储库。 

二、推送镜像

1、在命令行中,运行docker Hub上看到的docker push命令。请注意,您的命令具有Docker ID,而不是“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/gettingstarted图像,但没有找到。如果运行docker image ls,也不会看到。
解决问题,您需要标记构建现有图像,以为其提供另一个名称

2、使用命令Docker login-u YOUR-USER-NAME登录到Docker Hub。

3、使用docker tag命令为入门图像指定一个名称。将您的用户名替换为Docker ID。

 docker tag getting-started YOUR-USER-NAME/getting-started

4、现在再次运行docker push命令。如果要从Docker Hub复制值,可以删除标记部分,因为您没有向图像名添加标记。如果不指定标记,Docker将使用名为latest的标记。

docker push YOUR-USER-NAME/getting-started

三、在新实例运行镜像

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

注意
Play with Docker使用amd64平台。如果您将基于ARM的Mac与Apple Silicon一起使用,则需要重建映像以与Play with Docker兼容,并将新映像推送到存储库中
要为amd64平台构建映像,请使用–platform标志。

docker build --platform linux/amd64 -t YOUR-USER-NAME/getting-started .

Docker buildx支持构建多平台映像

  1. 打开浏览器以使用Docker。
  2. 选择Login然后下拉表中选择docker。
  3. 使用Docker Hub帐户登录然后选择开始。
  4. 选择左侧栏上的“添加新实例选项。如果看不到,请将浏览器扩大一点。几秒钟后,浏览器中打开一个终端窗口。 

 

5、在终端中,启动新推送的应用

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

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

提示
可能已经注意到,该命令将端口映射绑定不同的IP地址。以前的docker在主机上运行命令以将端口发布到127.0.0.1:3000。这一次,您使用的是0.0.0.0。
绑定到127.0.0.1仅向环回接口公开容器端口。然而,绑定到0.0.0.0会在主机的所有接口上公开容器端口,使其可供外部使用。
有关端口映射工作方式的更多信息,请参阅网络

6、当3000标识出现时,选择它。
   如果未显示3000标识,则可以选择“打开端口”并指定3000。

四、总结

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

原文地址:https://blog.csdn.net/leesinbad/article/details/134659316

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_46256.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注