首页 > 解决方案 > 是否可以备份具有所有卷/数据/状态的 Docker 容器?

问题描述

我是 Docker 新手,想知道是否可以设置以下内容:

我有我的个人计算机,我正在通过 Dockerfile 在我的 WordPress 网站上工作。他的一切都很好,数据是持久的。

我想做的是能够将这项工作保存在 Docker 集线器或 Github 上(我假设更新的图像将备份在我的 Docker 集线器上)并在完全不同的计算机上从我离开的地方开始工作。

那可能吗 ?

标签: wordpressdockerdocker-composedockerfile

解决方案


一般来说,你应该能够设置你的 Docker 容器,使得容器内根本没有持久状态;您可以自由删除和重新创建容器而不会丢失数据。最好和最简单的情况是容器只依赖于一些外部数据库,在这种情况下你不需要做任何事情。

如果您有类似带有本地自定义的 Wordpress 安装,或者在文件系统中存储持久数据的东西,您应该使用该docker run -v选项或 Docker Composevolumes:选项将主机文件系统的一部分注入容器。然后需要备份这些卷(并且对于 Docker 文档支持命名卷的所有内容,如果您使用主机目录,您的正常备份解决方案将可以正常工作。

简而言之,我建议:

  • 为您的应用程序构建自定义映像,并将 Dockerfile 和任何支持工件检查到源代码控制中。它们不需要单独备份;即使你失去了你的形象,你可以docker build再次。

  • 使用绑定安装注入自定义,并将这些自定义检查到源代码控制中。它们不需要单独备份。

  • 使用卷或绑定挂载存储可变数据,并正常备份这些数据。

  • 容器是一次性的。您不需要备份容器本身,您应该始终能够从上面的工件重新创建它。


推荐阅读