我的Docker Wordpress网站在哪里存储数据?

时间:2015-06-11 14:08:13

标签: mysql wordpress docker

我目前在Docker中设置了一个Wordpress容器,并将其链接到同一台机器上的MySQL数据库(在Docker容器中)。我在浏览器中编辑网站,删除Wordpress容器,并创建一个链接到同一数据库的新容器。

当我这样做时,我在网站上发布的示例帖子仍然存在,所以我假设我的数据是由我的数据库本地存储的。但是,我尝试使用一个Wordpress容器使用Wordpress Multisite设置多个网站。为此,我必须在Wordpress容器中编辑Wordpress配置文件。

我删除了这个容器,并像之前一样创建了一个新容器。我尝试在这个容器中复制配置更改,但是,当我导航到我的网站时,它只是给了我一个白色的屏幕。这让我认为MySQL数据库突然指向空表。

我的Wordpress模板/信息实际存储在哪里?

编辑:以下是我运行的命令

sudo docker run -p 80:80 --name wordpress_local -e WORDPRESS_DB_HOST=(machine's IP address) -e WORDPRESS_DB_USER=user -e WORDPRESS_DB_PASSWORD=password -d wordpress

注意:假设我有一个本地MySQL数据库设置,它接受来自0.0.0.0的连接,并且有一个名为user的用户,密码为password

我知道我的容器通过查看日志正确链接到数据库(以及我可以访问网站的事实 - 只是得到一个空白页)

编辑2 :看看我的Wordpress容器文件系统,我可以浏览不同的文件夹,看看我安装的主题/插件等内容。为什么这不存储在我的本地机器上? (对不起,如果这是一个愚蠢的问题 - 我是MySQL和Docker的新手)

1 个答案:

答案 0 :(得分:1)

当您第一次运行wordpress容器时,初始化脚本会将wordpress代码库下载到/var/www/html,然后启动Web服务器。由于容器内的所有内容都是短暂的,因此当您重新运行容器时,您所做的任何更改的代码库都将丢失(除非您只是停止/启动容器,这不是此方案的最佳选项)

您需要的是使此文件夹具有持久数据。要实现此目的,您必须从容器内的主机安装文件夹:

sudo docker run -p 80:80 \
   --name wordpress_local \
  -e WORDPRESS_DB_HOST=(machine's IP address) \
  -e WORDPRESS_DB_USER=user \
  -e WORDPRESS_DB_PASSWORD=password \
  -d \
  -v `pwd`/html:/var/www/html \
  wordpress

不要忘记,应该已经创建了文件夹:mkdir -p data