坚持使用Docker化的WordPress(使用LAMP堆栈)

时间:2015-03-16 20:06:00

标签: mysql wordpress persistence docker

我正在努力将我的WordPress博客从传统设置转移到Docker,但是我在理解保留数据的最佳方式时遇到了一些麻烦。

简而言之,我的想法是让每个博客都在自己的容器中运行(基于tutum/wordpress)。在我的测试中,我注意到如果我在博客上保存任何数据,当我提交容器时,图像不包含这样的数据。据我所知,Docker应该在提交新图像时保存容器的状态。当我在容器上运行命令或安装包时会发生这种情况,但是当我(例如在WordPress中创建新帖子)时不会发生这种情况。

我已经阅读了一些关于Docker卷的内容,但我不认为拥有单独的数据量非常方便,因为我更喜欢将所有数据放在一个容器中,然后我就可以移动更容易。

我有什么遗漏的吗?什么阻止Docker在WordPress中保存新帖子?

谢谢大家的时间!

1 个答案:

答案 0 :(得分:2)

tutum/wordpress的Dockerfile基于tutum:lamp,它在/etc/mysql/var/lib/mysql处声明了一个卷。因此,如果您使用该图像,无论您喜欢与否,都会有卷。由于卷中的数据位于Union文件系统之外,因此docker commit命令不会保存它。

如果你真的不想使用卷,你可以在没有volume语句的情况下编写自己的Dockerfile。但是,这真的不会很好 - 每次你想要保存wordpress的状态时,你必须提交一个新的图像,它将建立在最后一个之上。除了烦恼和笨拙之外,你最终会达到图像中允许的最大图层数。

相反,你只需要处理我害怕的卷。这并不像您想象的那么糟糕 - 您只需压缩卷目录并将其解压缩到新卷中即可。最大的好处是可以将可变和不断变化的数据与应用程序代码分开,这些代码可以单独更新和更改。