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

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

当我这样做,我在我的网站上发布的示例post仍然存在,所以我假设我的数据正在我的数据库本地存储。 不过,我然后尝试使用Wordpress多容器使用一个Wordpress容器设置多个网站。 要做到这一点,我不得不编辑Wordpress容器内的Wordpressconfiguration文件。

我删除了这个容器,并像以前一样创build了一个新的容器。 我尝试复制此容器中的configuration更改,但是,当我导航到我的网站时,它只是给我一个白色的屏幕。 这导致我认为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连接,并拥有一个用户名为password的password

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

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

当你第一次运行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 

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