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

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

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

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:
     #这里与上面的mysql对应。
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     volumes:
       - ./wordpress:/var/www/html
     environment:
      #这里的db就代表上面mysql容器主机
       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部分信息
centos8使用docker安装wordpress+mysql配置文件中WORDPRESS_DB_HOST的理解_第1张图片

(2)mysql输出的部分信息
centos8使用docker安装wordpress+mysql配置文件中WORDPRESS_DB_HOST的理解_第2张图片

你可能感兴趣的:(wordpress,docker,mysql)