通过导出/导入移动Docker容器:丢失配置,如启动命令

时间:2016-03-29 11:54:10

标签: configuration docker migration

我想将容器从一个主机移动到另一个主机。容器已更新其文件系统中的数据,因此我不想移动原始图像(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,我看到导入图像上的所有数据都是空的,尽管它是在导出的运行容器上设置的。我主要缺少启动命令,工作目录,环境变量和暴露端口(由于迁移和新环境,我必须更改其中一些)。

如何在新主机上应用原始配置,或者最好是正确迁移它?

1 个答案:

答案 0 :(得分:1)

您可以commit将当前容器状态设置为新图像。然后在新图像上使用save / load。

据说这是你通常应该避免的事情。运行时数据应保存在卷中,任何配置更改都应通过Dockerfile重建进行。