wordpress容器无法连接到mariadb容器

时间:2016-06-26 15:39:02

标签: wordpress nginx docker docker-compose

这是我的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

1 个答案:

答案 0 :(得分:0)

您不需要公开打开MariaDB端口,只需将端口3306暴露给其他容器。

所以在db replace:

ports:
  - 8001:3306

使用:

expose:
  - "3306"

我相信Wordpress中的默认数据库端口是3306,这也是MariaDB中的默认端口。