Ich versuche gerade, einen neuen Server mit Ubuntu 16.04 LTS zu konfigurieren.

Es gibt eine Anwendung, die außerhalb von Docker ausgeführt wird: Mein Nginx-Reverseproxy / Webserver. Dies sollte nicht stören, da nur die Ports 80 und 443 überwacht werden. Der Zugriff auf die PMA-Schnittstelle funktioniert einwandfrei.

Derzeit laufen 3 Docker-Container: ein PHP-FPM-Container (der die PHP-Verarbeitung von nginx übernimmt), MySQL und phpMyAdmin. Alle drei werden von docker-compose erstellt. Die .yml-Datei sieht folgendermaßen aus:

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

(Bitte ignorieren Sie die Massen von Bänden, ich weiß, das ist schlecht)

Das funktioniert jetzt nicht. Wenn Sie im PMA-Anmeldeformular auf Anmelden klicken, wird die folgende Fehlermeldung angezeigt: #2002 - No such file or directory &mdash; The server is not respondingundmysqli_real_connect(): (HY000/2002): No such file or directory

Manuelles Ausführen des PMA-Containers mithilfe von sudo docker run --name myadmin -d -e PMA_HOST=sintra01 -p 8080:80 -p 8443:443 phpmyadmin/phpmyadmin

es funktioniert einwandfrei. Ich kann mich auch mit zB MySQL Workbench mit der Datenbank verbinden, unabhängig davon, ob ich Compose oder Docker Run verwende. Ich denke also, der Täter muss in irgendeiner Weise vom Hafenarbeiter komponiert worden sein.

EDIT: OK, ich habe anscheinend auch Auswirkungen auf den PHP-Container. Ich kann von keinem PHP-Skript aus eine Verbindung zur Datenbank herstellen.

Draconisin
quelle