使用 Docker-Compose 时 phpMyAdmin 无法连接到 mysql,使用“docker run”即可

使用 Docker-Compose 时 phpMyAdmin 无法连接到 mysql,使用“docker run”即可

我目前正在尝试配置运行 Ubuntu 16.04 LTS 的新服务器。

有一个应用程序在 docker 外部运行:我的 nginx 反向代理/web 服务器。这不会造成干扰,因为它只监听端口 80 和 443。访问 PMA 接口工作正常。

目前有 3 个 Docker 容器正在运行:一个 PHP-FPM 容器(处理来自 nginx 的 php 处理)、MySQL 和 phpMyAdmin。这 3 个容器均由 docker-compose 创建,.yml 文件如下所示:

version: "3"
services:
  php-fpm:
    build:
      context: /srv/docker/dockerfiles/php-fpm
    image: php-fpm:latest
    ports:
      - 9000:9000
    volumes:
      - "/srv/docker/volumes/php-fpm/config/:/usr/local/etc/php/"
      - "/srv/docker/volumes/php-fpm/ssh/:/root/.ssh/"
      - "/srv/www/:/srv/www/"
      - "/srv/docker/volumes/php-fpm/logs/:/var/log/php-fpm/"
    restart: unless-stopped

  mysql:
    image: mysql/mysql-server:latest
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=<insert secure password>
      - MYSQL_ROOT_HOST=sintra01
    volumes:
      - "/srv/docker/volumes/mysql/:/var/lib/mysql"
    restart: unless-stopped

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    ports:
      - 8080:80
      - 8443:443
    environment:
      - PMA_HOST=sintra01
      - PMA_PORT=3306
    volumes:
      - "/srv/docker/volumes/phpmyadmin/config/:/etc/phpmyadmin/"
    restart: unless-stopped

(请忽略大量的内容,我知道这很糟糕)

现在,这不起作用。单击 PMA 登录表单中的登录时,出现以下错误消息 #2002 - No such file or directory &mdash; The server is not respondingmysqli_real_connect(): (HY000/2002): No such file or directory

使用以下方式手动运行 PMA 容器 sudo docker run --name myadmin -d -e PMA_HOST=sintra01 -p 8080:80 -p 8443:443 phpmyadmin/phpmyadmin

它运行完美。我也可以使用 MySQL Workbench 等连接到数据库,无论使用 compose 还是 docker run。所以我猜罪魁祸首一定是 docker-compose。

编辑:好的,显然它也影响 php 容器。我无法从任何 php 脚本连接到数据库。

相关内容