【问题标题】:wordpress container cannot connect to mariadb containerwordpress 容器无法连接到 mariadb 容器
【发布时间】:2016-06-26 15:39:01
【问题描述】:

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

【问题讨论】:

  • 你能不试试 :mysql 吗?在链接部分?
  • 我试过了,同样的问题。
  • 我尝试了另一个 wp 安装,发现它可以使用相同的代码但在另一个目录中。 mysql错误在这种情况下无关紧要,但我不知道问题出在哪里。
  • 第 10 行警告并非来自 docker-compose.yml。添加端口到 WORDPRESS_DB_HOST 怎么样:WORDPRESS_DB_HOST=db:3306

标签: wordpress nginx docker docker-compose


【解决方案1】:

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

所以在数据库中替换:

ports:
  - 8001:3306

与:

expose:
  - "3306"

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 2020-12-30
    • 2020-07-29
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2021-11-15
    相关资源
    最近更新 更多