В настоящее время я пытаюсь настроить новый сервер под управлением 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 &mdash; 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.

0