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

标签 configuration docker migration

我想将容器从一台主机移动到另一台主机。容器已在其文件系统中更新了数据,因此我不想移动原始图像(docker保存),而是容器(使用docker export)。

所以我用

docker export l4bnode > l4bnode.tar

在旧主机上,将文件复制到新主机,然后导入镜像
cat l4bnode.tar | docker import - andi/l4bnode

在新的。但是..看起来我在Dockerfile中拥有的所有配置数据(并且我还可以在运行容器时在命令行中指定/指定)丢失了。我试过了
docker run andi/l4bnode

并得到
docker: Error response from daemon: No command specified.

使用docker inspect,我看到导入图像上的所有数据都是空的,尽管它是在导出的运行容器上设置的。我主要缺少启动命令,工作目录,环境变量和公开的端口(由于迁移和新环境,其中一些我必须更改)。

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

最佳答案

您可以将当前容器状态commit作为新图像。然后在新图像上使用保存/加载。

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

关于configuration - 通过导出/导入移动Docker容器:丢失配置,如启动命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36283537/

相关文章:

ruby-on-rails - 如何在 rails 迁移生成命令中指定精度和比例?

linux - 在 Linux 服务器上共享 Cruisecontrol 配置的最佳方式是什么?

Tomcat:限制本地主机的带宽

ssh - 从 Docker 容器添加 Ruby SDK 作为 RubyMine 上的远程 SDK

Windows Server 2016 中的 Docker 无法运行

svn - 将 SVN 工作区指向具有不同父目录的不同服务器和存储库

php - Yii 迁移更新

sharepoint - IIS 7 httpruntime maxRequestLength 限制为 2097151

java - 在configuration.reload()之后Struts2不提供静态资源

security - Anchore Engine - Jenkins CI 插件