坚持docker化的WordPress(带有LAMP堆栈)

我正在将我的WordPress博客从传统设置移动到Docker,但是我在理解持久数据的最佳方式方面遇到了一些麻烦。

总之,我的想法是让每个博客运行在自己的容器内(基于tutum/wordpress )。 在我的testing过程中,我注意到如果我在博客上保存任何数据,当我提交容器时,图像不包含这样的数据。 据我了解,Docker应该在提交新映像时保存容器的状态。 当我在一个容器上运行命令或安装包时会发生这种情况,但是当我例如在WordPress中创build一个新post时,这种情况不会发生。

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

有什么我失踪? 什么是阻止Docker在WordPress中保存新post?

谢谢大家的时间!

tutum/wordpress的Dockerfile基于tutum:lamp ,它在/etc/mysql/var/lib/mysql声明一个卷。 所以,如果你使用这个图像,无论你喜不喜欢,都有卷。 因为卷中的数据超出了联合文件系统的范围,所以不会被docker commit命令保存。

如果你真的不想使用卷,你可以写你自己的Dockerfile没有卷的声明。 但是,这确实不会很好 – 每次你想保存wordpress的状态,你都必须提交一个新的图像,它将build立在最后一个之上。 除了只是讨厌和笨拙,你最终会达到图像允许的最大层数。

相反,你只是要处理卷恐怕。 这并不像你想象的那样糟糕 – 你只需要压缩卷目录并将其解压缩到一个新的卷。 最大的好处是可以将可变的和不断变化的数据与可以分别更新和更改的应用程序代码分开。