这是我的Docker Compose文件:
version: '2'
services:
wordpress:
image: wordpress
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: *****
WORDPRESS_DB_NAME: wordpress
links:
- db:mysql
ports:
- 8000:80
#network_mode: "none"
restart: always
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: *****
MYSQL_DATABASE: wordpress
MYSQL_USER: root
MYSQL_PASSWORD: *****
ports:
- 8001:3306
volumes:
- ./configs/etc/mysql/my.cnf:/etc/mysql/my.cnf
restart: always
这是我在docker日志中遇到的错误:
Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 10
第10行是“链接”之一。
我在首页上也遇到了502 Bad Gateway错误(我在主机操作系统中安装了Nginx作为代理,将端口80转发到8000)
请注意,nginx代理访问日志都返回为302而不是502。
Ps:我正在使用official Docker images
答案 0 :(得分:0)
您不需要公开打开MariaDB端口,只需将端口3306暴露给其他容器。
所以在db replace:
ports:
- 8001:3306
使用:
expose:
- "3306"
我相信Wordpress中的默认数据库端口是3306,这也是MariaDB中的默认端口。