wordpress - 是否可以备份具有所有卷/数据/状态的 Docker 容器?
问题描述
我是 Docker 新手,想知道是否可以设置以下内容:
我有我的个人计算机,我正在通过 Dockerfile 在我的 WordPress 网站上工作。他的一切都很好,数据是持久的。
我想做的是能够将这项工作保存在 Docker 集线器或 Github 上(我假设更新的图像将备份在我的 Docker 集线器上)并在完全不同的计算机上从我离开的地方开始工作。
那可能吗 ?
解决方案
一般来说,你应该能够设置你的 Docker 容器,使得容器内根本没有持久状态;您可以自由删除和重新创建容器而不会丢失数据。最好和最简单的情况是容器只依赖于一些外部数据库,在这种情况下你不需要做任何事情。
如果您有类似带有本地自定义的 Wordpress 安装,或者在文件系统中存储持久数据的东西,您应该使用该docker run -v
选项或 Docker Composevolumes:
选项将主机文件系统的一部分注入容器。然后需要备份这些卷(并且对于 Docker 文档支持命名卷的所有内容,如果您使用主机目录,您的正常备份解决方案将可以正常工作。
简而言之,我建议:
为您的应用程序构建自定义映像,并将 Dockerfile 和任何支持工件检查到源代码控制中。它们不需要单独备份;即使你失去了你的形象,你可以
docker build
再次。使用绑定安装注入自定义,并将这些自定义检查到源代码控制中。它们不需要单独备份。
使用卷或绑定挂载存储可变数据,并正常备份这些数据。
容器是一次性的。您不需要备份容器本身,您应该始终能够从上面的工件重新创建它。
推荐阅读
- docker - Docker swarm 服务数量与 kubernets pod 数量
- laravel - Spatie 多租户。在 null 上调用成员函数 prepare()
- r - 在列表中随机子集向量的任何更快的方法?
- swift - 当我抛出异常时,Xcode 调试器突出显示错误的行
- python - 如何在matlab中运行python函数,python函数里面有matlab函数
- r - 更改迷你图 R 包中项目符号图的最小值
- codeeffects - Flexsource 属性未出现在规则编辑器中
- python - 可以将 yaxis 动态添加到 plotly 中的 graph_objects 布局中吗?
- python - 如何使用 SQL Alchemy 更改我的方法以计算添加的列
- jenkins - 使用与构建相同的分支中的 Jenkins 模板引擎