如何在不使用存储库的情况下将Docker映像从一台计算机传输到另一台计算机,无论是私有的还是公共的?
我在VirtualBox中创建了自己的映像,当它完成后,我尝试将其部署到其他机器上,以实现真正的使用。
因为它基于我自己的映像(比如recreated ),所以不能从Dockerfile中重新创建它。我的文件很难移植。
有我可以使用的简单命令吗?还是另一个解决方案?
发布于 2014-05-29 17:09:52
您需要将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发布于 2014-10-06 23:11:26
通过SSH传输Docker映像,动态压缩内容:
docker save <image> | bzip2 | ssh user@host docker load注意,docker load会自动为您解压缩图像。它支持gzip、bzip2和xz。
将pv放在管道的中间以查看传输的进展情况也是一个好主意:
docker save <image> | bzip2 | pv | ssh user@host docker load(有关pv的更多信息:主页,手册页)。
@Thomas的重要注意事项:在高带宽情况下,bzip无法足够快地压缩。如果您可以以10 MB/s或更多的速度上传,gzip/gunzip将比bzip2快得多。
@jgmjgm建议你可以使用xz:它提供了更高的压缩比。
发布于 2014-11-04 05:54:03
若要将图像保存到任何文件路径或共享NFS位置,请参阅下面的示例。
通过以下操作获取图像id:
docker images假设你有一个id为“矩阵-数据”的图像。
用id保存图像:
docker save -o /home/matrix/matrix-data.tar matrix-data将图像从路径复制到任何主机。现在使用以下方法导入到本地Docker安装中:
docker load -i <path to copied image file>https://stackoverflow.com/questions/23935141
复制相似问题