我如何将Docker映像从一台机器传输到另一台机器,而不使用存储库,不管是私有的还是公共的?
我在VirtualBox中创建自己的映像,当映像完成后,我尝试将其部署到其他机器上以获得真正的使用。
由于它是基于我自己的基于映像的(像Red Hat Linux一样),所以不能从DockerFile重新创建它。我的dockerfile不容易移植。
有简单的命令我可以使用吗?还是另一种解决方案?
要将图像保存到任何文件路径或共享NFS位置,请参阅以下示例。
通过执行以下操作获取映像id:
docker images
假设您有一个id为“Matrix-Data”的图像。
保存ID为:
docker save -o /home/matrix/matrix-data.tar matrix-data
将映像从路径复制到任何主机。现在使用以下方法导入到本地Docker安装:
docker load -i <path to copied image file>
通过SSH传输Docker映像,bziping即时内容:
docker save <image> | bzip2 | \
ssh user@host 'bunzip2 | docker load'
将pv
放在管道中间查看传输情况也是一个好主意:
docker save <image> | bzip2 | pv | \
ssh user@host 'bunzip2 | docker load'
(有关PV
的更多信息:主页、手册页)。
您需要将Docker映像保存为tar文件:
docker save -o <path for generated tar file> <image name>
然后使用常规文件传输工具(如CP
、SCP
或rsync
(大文件首选))将映像复制到新系统。之后,您必须将图像加载到Docker中:
docker load -i <path to image tar file>
ps:您可能需要sudo
所有命令。
编辑:您应该使用-o添加文件名(而不仅仅是目录),例如:
docker save -o c:/myfile.tar centos:16
问题内容: 如何在不使用存储库的情况下将Docker映像从一台计算机转移到另一台计算机,无论是私有的还是公共的? 我在VirtualBox中创建自己的映像,完成后,我尝试部署到其他计算机上以实际使用。 由于它基于我自己的映像(例如Red Hat Linux),因此无法从Dockerfile重新创建它。我的dockerfile不容易移植。 我可以使用简单的命令吗?还是其他解决方案? 问题答案: 您将
使用时,保存的图像是独立的,因此图像的大小会变大。(~对于10个图像,大小约为9GB) 在提取docker图像后,我探索: 有没有办法有效地导出图像? 注:我已经提到了这一点。这个问题不是它的重复。它没有解决我上面提到的用例。
我希望使用ssh作为将托管在公司网络中的docker映像传输到私有云的传输机制。设置VPN连接将不是我的首选(因为它只是增加了复杂性)。有什么想法从哪里开始看这个吗 编辑:我和我的团队成员可能每天都要这样做很多次(拉和推)
问题内容: 我在本地计算机上为postgres创建了一个docker卷。 然后,我使用了该卷并运行了一个docker。 之后,我做了一些数据库操作,这些操作自动存储在postgres-data中。现在,我想将该卷从本地计算机复制到另一台远程计算机。怎么做一样。 注意-数据库大小非常大 问题答案: 如果第二台计算机启用了SSH,则可以在第一台计算机上使用Alpine容器来映射该卷,将其捆绑并发送到第
问题内容: 如Docker文档中有关使用卷的文档中所述,存在所谓 的仅数据 容器的概念,该容器提供了可以安装到多个其他容器中的卷,无论该数据容器是否正在运行。 基本上,这听起来很棒。但是有一件事我不明白。 这些卷(由于可移植性原因, 未 明确映射到主机上的文件夹,如文档所述)由Docker在主机上的某个内部文件夹中创建和管理。 假设我使用了这样一个卷,然后需要将其从一台主机迁移到另一台主机-如何移
正如Docker有关卷的文档中所述,存在所谓的仅数据容器的概念,它提供了一个可以装入多个其他容器的卷,无论仅数据容器是否实际运行。 基本上,这听起来很棒。但有一件事我不明白。 这些卷(如文档所述,出于可移植性原因,这些卷不会显式映射到主机上的文件夹)由Docker在主机上的某个内部文件夹中创建和管理()。 假设我使用这样一个卷,然后我需要将它从一台主机迁移到另一台主机——我如何移植该卷?AFAIC