我想将容器从一个主机移动到另一个主机。容器已更新其文件系统中的数据,因此我不想移动原始图像(docker save)而是移动容器(使用docker export)。
所以我用
let dateFormater = NSDateFormatter()
dateFormater.dateFormat = "MM/dd/yy"
let dt = dateFormater.stringFromDate(NSDate())
在旧主机上,将文件复制到新主机,然后导入图像
docker export l4bnode > l4bnode.tar
关于新的。但是......看起来我在Dockerfile中拥有的所有配置数据(我也可以在运行容器时指定/在命令行中指定)都丢失了。我试过了
cat l4bnode.tar | docker import - andi/l4bnode
并获取
docker run andi/l4bnode
使用docker inspect,我看到导入图像上的所有数据都是空的,尽管它是在导出的运行容器上设置的。我主要缺少启动命令,工作目录,环境变量和暴露端口(由于迁移和新环境,我必须更改其中一些)。
如何在新主机上应用原始配置,或者最好是正确迁移它?
答案 0 :(得分:1)
您可以commit将当前容器状态设置为新图像。然后在新图像上使用save / load。
据说这是你通常应该避免的事情。运行时数据应保存在卷中,任何配置更改都应通过Dockerfile重建进行。