具有启动参数的Docker备份容器

我自从几个月以来面临同样的问题,我没有一个适当的解决scheme。

我根据不同的图像运行几个容器。 其中一些开始使用portainer与一些论据和卷。 其中一些开始使用CLI和docker工人开始一些参数和参数。

现在所有这些设置都存储在某个地方。 因为如果我停下来重新调整这样一个容器,一切都很好。 但是,如果我做了一个提交,用tar备份它,并将其加载到不同的系统上,并执行docker启动,它已经失去了所有的设置。

在这里描述的程序: https : //linuxconfig.org/docker-container-backup-and-recovery在我的情况下不起作用。

现在即时通讯考虑编写一个自己的Web应用程序,这将创build一些基于我的设置的docker组成文件,而不是只是做一个正确的参数docker开始。 这个Web应用程序还应该处理卷(只是文件夹),并使用borg将它们增量备份到远程服务器。

但实际上这只是一个想法。 有没有办法“提取”一个运行的包含器的docker组成文件? 所以我可以重新部署容器1:1到其他服务器,只需运行docker运行mycontainer,它将具有相同的设置?

或者我必须写我的networking应用程序? 还是我错过了谷歌的一些网页,已经有这样的解决scheme?

谢谢!

要查看容器的当前configuration,可以使用:

docker container inspect $container_id 

然后,您可以使用这些configuration在另一台机器上运行您的容器。 没有简单的导入/导出这些设置来启动另一个我知道的容器。

大多数人使用docker-compose.yml来定义他们希望容器运行的方式。 他们还用Dockerfile构build图像,并使用registry服务器而不是保存/加载来传输它们。

docker-compose.yml可与docker-compose.yml docker-composedocker-compose.yml docker stack deploy并允许将容器configurationlogging为在版本控制中跟踪的configuration文件,而不是容易出错的用户input设置。 手动运行容器或使用GUI启动容器对于快速testing或debugging非常有用,但不适用于可重复性。

你想备份实例,但是你提供的命令是备份映像。 我build议更新您的Dockerfile来解决这个问题。 如果你真的想保存实例的当前状态,你应该使用docker exportdocker import命令。

参考:

https://docs.docker.com/engine/reference/commandline/import/ https://docs.docker.com/engine/reference/commandline/export/


注意:docker export不会导出卷的内容,我build议你应该参考https://docs.docker.com/engine/admin/volumes/volumes/