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

时间:2017-11-10 13:11:44

标签: docker docker-compose backup commit

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

我根据不同的图像运行几个容器。其中一些人开始使用带有一些参数和卷的portainer。其中一些是使用CLI开始的,而docker是从一些参数和参数开始的。

现在所有这些设置都存储在某处。因为如果我停下来并重新启动这样一个容器,一切都会好起来的。但是,如果我执行提交,使用tar备份它并将其加载到另一个系统并启动docker,它已丢失所有设置。

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

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

但实际上这只是一个想法。有没有办法提取"提取" docker撰写正在运行的包含文件?这样我就可以将容器1:1重新部署到另一台服务器,只需运行docker run mycontainer,它就会有相同的设置吗?

或者我是否必须编写我的网络应用程序?或者我在谷歌上错过了一些页面并且已经有这样的解决方案了吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您希望备份实例,但您提供的命令是备份图像。我建议您更新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/

答案 1 :(得分:0)

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

docker container inspect $container_id

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

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

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