В настоящее время я пытаюсь настроить новый сервер под управлением Ubuntu 16.04 LTS.
За пределами докера работает одно приложение: Мой обратный прокси / веб-сервер nginx. Это не должно мешать, потому что это только слушает на портах 80 и 443. Доступ к интерфейсу PMA работает нормально.
В настоящее время работают 3 Docker-контейнера: PHP-FPM-контейнер (который обрабатывает php-обработку, поступающую из nginx), 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. Так что я думаю, что виновник должен быть каким-то образом составлен в докере.
РЕДАКТИРОВАТЬ: ОК, по-видимому, это также влияет на контейнер php. Я не могу подключиться к базе данных из любого сценария php.