我几个月来面临同样的问题,我没有足够的解决方案。
我根据不同的图像运行几个容器。其中一些人开始使用带有一些参数和卷的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,它就会有相同的设置吗?
或者我是否必须编写我的网络应用程序?或者我在谷歌上错过了一些页面并且已经有这样的解决方案了吗?
谢谢!
答案 0 :(得分:0)
您希望备份实例,但您提供的命令是备份图像。我建议您更新Dockerfile
以解决问题。如果您真的想要保存实例当前状态,则应使用docker export
和docker 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-compose
或docker stack deploy
一起使用,并允许将容器的配置记录为在版本控制中跟踪的配置文件,而不是容易出错的用户输入设置。手动运行容器或使用GUI启动容器对于快速测试或调试很有用,但不能用于再现性。