具有启动参数的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-compose
或docker-compose.yml
docker stack deploy
并允许将容器configurationlogging为在版本控制中跟踪的configuration文件,而不是容易出错的用户input设置。 手动运行容器或使用GUI启动容器对于快速testing或debugging非常有用,但不适用于可重复性。
你想备份实例,但是你提供的命令是备份映像。 我build议更新您的Dockerfile
来解决这个问题。 如果你真的想保存实例的当前状态,你应该使用docker export
和docker 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/