这篇博客提到了我按照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: - 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