我目前正在尝试配置运行 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 — The server is not responding
:mysqli_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 脚本连接到数据库。