centos8使用docker安装wordpress+mysql配置文件中WORDPRESS_DB_HOST的理解

这篇博客提到了我按照docker官网安装wordpress遇到的问题。可能这是centos8特有的问题吧。经过了解我确定不是docker官网composse文件问题。下面是我对于compose的理解。

下面compose文件几乎和官方一样,只是volumes挂在有些不同。

<span class="token key atrule">version</span><span class="token punctuation">:</span> <span class="token string">'3.3'</span> <span class="token key atrule">services</span><span class="token punctuation">:</span> <span class="token key atrule">db</span><span class="token punctuation">:</span> <span class="token key atrule">image</span><span class="token punctuation">:</span> mysql<span class="token punctuation">:</span><span class="token number">5.7</span> <span class="token key atrule">volumes</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> ./db_data<span class="token punctuation">:</span>/var/lib/mysql <span class="token key atrule">restart</span><span class="token punctuation">:</span> always <span class="token key atrule">ports</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> <span class="token string">"3307:3306"</span> <span class="token key atrule">environment</span><span class="token punctuation">:</span> <span class="token key atrule">MYSQL_ROOT_PASSWORD</span><span class="token punctuation">:</span> somewordpress <span class="token key atrule">MYSQL_DATABASE</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">MYSQL_USER</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">MYSQL_PASSWORD</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">wordpress</span><span class="token punctuation">:</span> <span class="token key atrule">depends_on</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> db <span class="token key atrule">image</span><span class="token punctuation">:</span> wordpress<span class="token punctuation">:</span>latest <span class="token key atrule">ports</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> <span class="token string">"8000:80"</span> <span class="token key atrule">restart</span><span class="token punctuation">:</span> always <span class="token key atrule">volumes</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> ./wordpress<span class="token punctuation">:</span>/var/www/html <span class="token key atrule">environment</span><span class="token punctuation">:</span> <span class="token key atrule">WORDPRESS_DB_HOST</span><span class="token punctuation">:</span> db<span class="token punctuation">:</span><span class="token number">3306</span> <span class="token key atrule">WORDPRESS_DB_USER</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">WORDPRESS_DB_PASSWORD</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">WORDPRESS_DB_NAME</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">volumes</span><span class="token punctuation">:</span> <span class="token key atrule">db_data</span><span class="token punctuation">:</span> <span class="token punctuation">{<!-- --></span><span class="token punctuation">}</span> <span class="token key atrule">wordpress</span><span class="token punctuation">:</span>
<span class="token key atrule">version</span><span class="token punctuation">:</span> <span class="token string">'3.3'</span> <span class="token key atrule">services</span><span class="token punctuation">:</span> <span class="token key atrule">db</span><span class="token punctuation">:</span> <span class="token key atrule">image</span><span class="token punctuation">:</span> mysql<span class="token punctuation">:</span><span class="token number">5.7</span> <span class="token key atrule">volumes</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> ./db_data<span class="token punctuation">:</span>/var/lib/mysql <span class="token key atrule">restart</span><span class="token punctuation">:</span> always <span class="token key atrule">ports</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> <span class="token string">"3307:3306"</span> <span class="token key atrule">environment</span><span class="token punctuation">:</span> <span class="token key atrule">MYSQL_ROOT_PASSWORD</span><span class="token punctuation">:</span> somewordpress <span class="token key atrule">MYSQL_DATABASE</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">MYSQL_USER</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">MYSQL_PASSWORD</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">wordpress</span><span class="token punctuation">:</span> <span class="token key atrule">depends_on</span><span class="token punctuation">:</span>  <span class="token punctuation">-</span> db <span class="token key atrule">image</span><span class="token punctuation">:</span> wordpress<span class="token punctuation">:</span>latest <span class="token key atrule">ports</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> <span class="token string">"8000:80"</span> <span class="token key atrule">restart</span><span class="token punctuation">:</span> always <span class="token key atrule">volumes</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> ./wordpress<span class="token punctuation">:</span>/var/www/html <span class="token key atrule">environment</span><span class="token punctuation">:</span>  <span class="token key atrule">WORDPRESS_DB_HOST</span><span class="token punctuation">:</span> db<span class="token punctuation">:</span><span class="token number">3306</span> <span class="token key atrule">WORDPRESS_DB_USER</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">WORDPRESS_DB_PASSWORD</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">WORDPRESS_DB_NAME</span><span class="token punctuation">:</span> wordpress <span class="token key atrule">volumes</span><span class="token punctuation">:</span> <span class="token key atrule">db_data</span><span class="token punctuation">:</span> <span class="token punctuation">{<!-- --></span><span class="token punctuation">}</span> <span class="token key atrule">wordpress</span><span class="token punctuation">:</span> 
version: '3.3' services: db: image: mysql:5.7 volumes: - ./db_data:/var/lib/mysql restart: always ports: - "3307:3306" environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always volumes: - ./wordpress:/var/www/html environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db_data: {} wordpress:

主要看WORDPRESS_DB_HOST字段,该字段对应wp-config.php中的DB_HOST字段值。这个值可以有三种填法,但后面两种只是可以运行的做法,不要实际这样做。
(1)这里的db指的就是mysql服务(ip+默认3306端口,如果是别的应该要明确指出来),后面的端口就是指的是mysql容器中对应的端口。如果是3006的话也可以省略不写。但最好还是在mysql和wordpress中都指明,清楚点。
(2)根据第一点,如果更改wp-config.php中的DB_HOST字段值为 mysql容器的ip+端口也可以运行,根据下面的内容可以改成172.19.0.2:3306。
(3)第二点也可以写成运行wordpress的容器的网关地址+mysql隐射端口。根据下面的图,可以写成172.19.0.1:3307。
后两种方法的执行需要先生成两个容器,然后查询对应的Gataway变量,然后修改wordpress对应的wp-config.php表才行。这只是可以运行的方法,但是不要这样做。而且在重新运行该容器后,wp-config.php的值会变回去。

同一个compose文件运行的容器都在同一网关下。见下图。
(1)wordpress输出的inspect部分信息
在这里插入图片描述

(2)mysql输出的部分信息
在这里插入图片描述

原文链接:https://blog.csdn.net/wshk918/article/details/108025486

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享