我目前在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的新手)
答案 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