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



几个月以来,我一直面临着同样的问题,我没有足够的解决方案。

我正在基于不同的映像运行多个容器。他们中的一些人开始使用带有一些参数和卷的portainer。其中一些是使用CLI和docker启动的,并带有一些参数和参数。

现在,所有这些设置都存储在某个地方。因为如果我停止并重定向这样一个容器,一切都会恢复正常。但是,如果我进行提交,用tar备份,并将其加载到另一个系统上,然后进行docker启动,它就会丢失所有设置。

此处所述的程序:https://linuxconfig.org/docker-container-backup-and-recovery对我来说不起作用。

现在我正在考虑写一个自己的web应用程序,它将根据我的设置为我创建一些docker compose文件,而不仅仅是用正确的参数进行docker启动。这个web应用程序还应该负责卷(只是文件夹),并使用borg将它们增量备份到远程服务器。

但实际上这只是一个想法。有没有一种方法可以"提取"正在运行的容器的docker组成文件?这样我就可以将容器1:1重新部署到其他服务器,只需运行docker-run-mycontainer,它就会有相同的设置?

还是我必须编写我的网络应用程序?或者我错过了谷歌上的某个页面,并且已经有了这样的解决方案?

谢谢!

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

docker container inspect $container_id

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

大多数人使用docker-compose.yml来定义他们希望容器如何运行。他们还使用Dockerfile构建图像,并使用注册表服务器而不是保存/加载来传输图像。

docker-compose.yml可以与docker-composedocker stack deploy一起使用,并允许将容器的配置记录为在版本控制中跟踪的配置文件,而不是容易出错的用户输入设置。手动运行容器或使用GUI启动容器对于快速测试或调试很有用,但对于再现性来说则不然。

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

参考:

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


注意:docker导出无论如何都不会导出卷的内容,我建议您应该参考https://docs.docker.com/engine/admin/volumes/volumes/

最新更新