如何将WordPress容器转换为图像?

时间:2019-03-02 08:57:34

标签: wordpress docker-compose

我用docker-compose安装了WordPress,现在我已经完成了网站的开发,如何即使将WordPress容器移除,也如何将这个容器变成一个永久映像,以便更新网站呢?

我经过的过程与this tutorial相同。

我现在得到了如下的WordPress容器

$ docker-compose images
      Container         Repository       Tag          Image Id      Size 
-------------------------------------------------------------------------
wordpress_db_1          mysql        5.7            e47e309f72c8   355 MB
wordpress_wordpress_1   wordpress    5.1.0-apache   523eaf9f0ced   402 MB

1 个答案:

答案 0 :(得分:1)

如果该wordpress图片制作良好,则只需备份volumes。但是,如果更改了容器文件系统上的文件(而不是卷中的文件),则还需要commit容器来生成新的Docker映像。这样的图像可以用于创建新的容器。

为了确定文件是否在容器文件系统上被修改/添加,请运行docker diff命令:

docker diff wordpress_wordpress_1

在我的测试中,经过Wordpress设置之后,甚至在更新了Wordpress,插件和主题之后,docker diff命令的结果也为我提供了

C /run
C /run/apache2
A /run/apache2/apache2.pid

这意味着仅挂起了 C 2个文件/目录,而挂起了 A 1个文件。

因此,使用docker commit命令生成新的Docker镜像毫无困难。这样的图像只会有这三个修改。

这也意味着该Wordpress Docker映像经过了精心设计,因为所有有价值的数据都保存在Docker卷中。 (同样适用于MySQL映像)


如何处理丢失的集装箱?

正如我们之前所验证的,所有有价值的数据都位于docker卷中。因此,松开容器并不重要。重要的是不要松动您的音量。 how to backup a docker volume这个问题已经在Stack Overflow中得到了多次回答。

现在请注意,一些docker和docker-compose命令确实会删除卷!例如,如果您运行docker rm -v <my container>,则-v选项是告诉docker在删除容器的同时也删除关联的卷。或者,如果您运行docker-compose down -v,则卷也将被删除。


如何备份在docker-compose项目中运行的Wordpress?

嗯,最好的方法是使用众所周知的正确执行操作的Wordpress插件来备份Wordpress数据。并不是因为您在Docker容器中运行Wordpress,Wordpress的良好做法已不再适用。

在需要恢复网站的情况下,请使用docker-compose.yml文件启动新的容器/卷,完成最小的Wordpress设置,安装备份插件并使用它来恢复数据。