将docker镜像推送到另一台主机上的docker注册表

问题描述 投票:0回答:1

我有两台计算机都有docker,我想保留我的docker镜像我做的另一台主机没有连接到互联网但是在本地局域网上。

所以这是我的机器(我使用hello-world图像示例)

macHost:~ ciasto$ docker tag hello-world 192.168.0.6:5000/hello-world

然后我尝试docker push 192.168.0.6:5000/hello-world

但这会引发错误:

The push refers to a repository [192.168.0.6:5000/hello-world]
Get https://192.168.0.6:5000/v2/: dial tcp 192.168.0.6:5000: getsockopt: connection refused

所以我尝试没有5000端口。

$ docker push 192.168.0.6/hello-world-2

那也扔错了:

The push refers to a repository [192.168.0.6/hello-world-2]
Get https://192.168.0.6/v2/: dial tcp 192.168.0.6:443: getsockopt: connection refused

我究竟做错了什么 ?

docker docker-registry
1个回答
0
投票

Docker Registry是一个特定的软件;你不能直接docker push图像到另一个系统。

最好的工作流程几乎肯定是写一个描述如何构建图像的Dockerfile。这是一个简单的文本文件,与shell脚本完全不同,您通常会将其添加到源代码存储库中。然后在另一个系统上,您可以检查存储库并运行docker build并获得功能相同的图像。

如果您有半隔离网络,则可以始终运行自己的注册表。假设您设置了本地DNS,主机名my-registry.local解析为192.168.0.123;然后你可以docker tag你的本地图像作为my-registry.local/me/imagenamedocker push他们从一个系统,和docker pull他们从另一个。

最低维护,最不可重复,最长期努力的路径是docker save第一个系统上的图像,scp或以其他方式将其传输到第二个系统,然后docker load它在那里。如果你有动力,你甚至可以一步到位

docker save me/imagename | ssh elsewhere docker load

如果“其他”系统实际上与网络断开连接并且“将其复制到其他系统”步骤涉及将映像文件复制到可移动介质上,则必须执行此操作。如果您经常这样做,或者有多个目标系统,您可能会发现设置本地注册表是一项很好的投资。

© www.soinside.com 2019 - 2024. All rights reserved.