Docker 带启动参数的备份容器

Docker backup container with startup parameters

几个月以来我一直面临同样的问题,但我没有合适的解决方案。

我运行基于不同的图像安装了几个容器。其中一些是使用带有一些参数和卷的 portainer 制作的tar。其中一些是使用 CLI 和 docker start 使用一些参数和参数进行的 tarted。

现在所有这些设置都存储在某个地方。因为如果我停止并重新 tart 这样的容器,一切都会恢复正常。但是,如果我提交,使用 tar 备份它并将其加载到不同的系统并执行 docker start,它会丢失所有设置。

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

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

但实际上这只是一个想法。有没有办法 "extract" 一个 docker 组成一个 运行ning containter 的文件?这样我就可以将容器 1:1 重新部署到另一台服务器,只需要 运行 docker 运行 mycontainer 并且它将具有相同的设置?

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

谢谢!

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

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

docker container inspect $container_id

然后您可以使用这些配置 运行 您在另一台机器上的容器。这些设置并不容易 import/export 来启动另一个我知道的容器。

大多数人使用 docker-compose.yml 来定义他们想要容器的方式 运行。他们还使用 Dockerfile 构建图像并使用注册服务器而不是 save/load.

传输它们

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