尝试 dockerise wordpress 我想出了这个场景:

2 个数据卷容器,一个用于数据库 (bbdd),另一个用于 wordpress 文件 (wordpress):

sudo docker create -v /var/lib/mysql --name bbdd ubuntu:trusty /bin/true
sudo docker create -v /var/www/html --name wordpress ubuntu:trusty /bin/true

然后我需要一个用于 mysql 的容器,所以我使用来自 docker hub 的 official mysql image 以及来自第一个数据容器的卷/var/lib/mysql:
docker run --volumes-from bbdd --name mysql -e MYSQL_ROOT_PASSWORD="xxxx" -d mysql:5.6

然后我需要一个用于 apache/php 的容器,所以我使用来自 docker hub 的 official wordpress image 以及来自第一个数据容器的卷/var/lib/mysql:
docker run --volumes-from wordpress --name apache --link mysql:mysql -d -p 8080:80 wordpress:4.1.2-apache

我从 docker docs 中了解到,如果我不删除数据容器,我将拥有持久性。
但是 如果我停止并删除正在运行的容器(apache 和 mysql)并使用最后一个命令重新创建它们,数据就会丢失 :
docker run --volumes-from bbdd --name mysql -e MYSQL_ROOT_PASSWORD="xxxx" -d mysql:5.6
docker run --volumes-from wordpress --name apache --link mysql:mysql -d -p 8080:80 wordpress:4.1.2-apache

但是,如果我创建没有数据容器的容器,它似乎按我的预期工作:
docker run -v /home/juanda/project/mysql:/var/lib/mysql --name mysql -e MYSQL_ROOT_PASSWORD="juanda" -d mysql:5.6
docker run -v /home/juanda/project/wordpress:/var/www/html --name apache --link mysql:mysql -d -p 8080:80 wordpress:4.1.2-apache

最佳答案

您需要运行一次数据容器以使其持久化:

sudo docker run -v /var/lib/mysql --name bbdd ubuntu:trusty /bin/true
sudo docker run -v /var/www/html --name wordpress ubuntu:trusty /bin/true

这是 here 描述的 Docker 的一个旧错误。如果您的 Docker 版本较旧,您可能会受到影响。

关于wordpress - Dockerize wordpress,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29954952/

10-16 10:42