PHPMyAdmin ist eine beliebte Verwaltungsschnittstelle für MySQL- und MariaDB-Datenbanken. Damit können Sie über einen Webbrowser mit Ihren Schemas, Tabellen und Daten interagieren.
Das Projekt verfügt über ein offizielles Docker-Image, das die Bereitstellung in containerisierten Umgebungen vereinfacht. So verwenden Sie das Image, um schnell eine neue PHPMyAdmin-Instanz zum Laufen zu bringen.
Grundlegende Verwendung
Die einfachste Installation lässt einen PHPMyAdmin-Container eine Verbindung zu jedem zugänglichen Datenbankserver herstellen:
docker run -d --name phpmyadmin -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin
Dieser Befehl startet PHPMyAdmin auf Port 8080. Besuchen Sie localhost:8080 in Ihrem Browser, um den Anmeldebildschirm anzuzeigen. Das Vorhandensein von PMA_ARBITRARY Umgebungsvariable führt dazu, dass ein Serververbindungsformular angezeigt wird. Geben Sie die Host- und Benutzeranmeldeinformationen Ihrer MySQL- oder MariaDB-Datenbank an, um sich anzumelden.

Wenn Sie diese Methode verwenden, sehen Sie normalerweise eine PHPMyAdmin-Warnung, dass „einige erweiterte Funktionen deaktiviert wurden“. Dies tritt auf, wenn der Server, mit dem Sie verbunden sind, keine Datenbank namens phpmyadmin hat . PHPMyAdmin verwendet dieses Schema, um seine eigenen Konfigurationsdaten zu speichern.

Folgen Sie dem Link der Warnung zu „Create a database“, um die Installation abzuschließen. Ihr Benutzerkonto benötigt die Berechtigung zum Erstellen neuer Datenbanken auf dem Server.
Einen Server voreinstellen
Alternativ zum Zulassen beliebiger Zugriffe können Sie den PHPMyAdmin-Container mit einer vorkonfigurierten Serververbindung starten. Geben Sie den PMA_HOST an und PMA_PORT Umgebungsvariablen anstelle von PMA_ARBITRARY :
docker run -d --name phpmyadmin -e PMA_HOST=mysql.example.com -e PMA_PORT=33060 -p 8080:80 phpmyadmin
PMA_PORT es ist optional. Es wird den MySQL-Standardwert 3306 verwenden, wenn kein Wert angegeben wird.
Das Starten des Containers mit diesen Variablen wird PHPMyAdmin darauf beschränken, mit mysql.example.com zu arbeiten Server. Sie werden auf dem Anmeldebildschirm zur Eingabe eines Benutzernamens und Passworts aufgefordert, müssen jedoch keinen Hostnamen angeben.
PHPMyAdmin kann auch so konfiguriert werden, dass mehrere Serveroptionen angezeigt werden. Geben Sie PMA_HOSTS an und PMA_PORTS als durch Kommas getrennte Listen von Verbindungen, um diese Funktionalität zu aktivieren.
Einen MySQL-Docker-Container verwenden
Ein weiterer häufiger Anwendungsfall ist die Verbindung zu einem MySQL- oder MariaDB-Server, der in einem separaten Docker-Container ausgeführt wird. Sie können den Datenbankserver entweder auf einem Port verfügbar machen oder beide Container mit einem gemeinsam genutzten Docker-Netzwerk verbinden. Verwenden Sie in beiden Fällen den PMA_HOST und PMA_PORT Umgebungsvariablen weisen PHPMyAdmin an, wie es sich mit dem Server verbinden soll.
Ältere Docker-Links werden ebenfalls unterstützt:
docker run -d --name phpmyadmin --link my_mysql_container:db -p 8080:80 phpmyadmin
Mit diesem Befehl können Sie PHPMyAdmin mit my_mysql_container verbinden Container ohne manuelles Einrichten von Netzwerkverbindungen. Diese Funktionalität ist in Docker jedoch veraltet, daher ist es vorzuziehen, zu den Netzwerkbefehlen zu wechseln:
docker network create phpmyadmin docker network connect phpmyadmin mysql_container_name --ip 172.17.0.1 docker network connect phpmyadmin phpmyadmin_container_name
Alternativ können Sie PHPMyAdmin mit einer vorkonfigurierten Netzwerkverbindung über Dockers --network starten Flagge:
docker run -d --name phpmyadmin --network phpmyadmin -p 8080:80 phpmyadmin
Jetzt kann PHPMyAdmin den MySQL-Container über das freigegebene Netzwerk erreichen. Setzen Sie den PMA_HOST Umgebungsvariable auf 172.17.0.1 wenn Sie den Container starten.
Vereinfachung der Bereitstellung mit Docker Compose
Das Schreiben einer Docker Compose-Datei vereinfacht nicht triviale Bereitstellungen. Sie können einen neuen PHPMyAdmin-Container auf wiederholbare Weise mit docker-compose up -d aufrufen Befehl.
Hier ist eine docker-compose.yml für PHPMyAdmin im beliebigen Verbindungsmodus:
version: "3"
services:
phpmyadmin:
image: phpmyadmin:latest
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
restart: unless-stopped Docker Compose hilft Ihnen auch beim Erstellen eines Stacks mit einer neuen MySQL-Datenbankinstallation und einem PHPMyAdmin-Container:
version: "3"
service:
mysql:
image: mysql:latest
expose:
- 3306
environment:
- MYSQL_ROOT_PASSWORD
volumes:
- mysql:/var/lib/mysql
restart: unless-stopped
phpmyadmin:
image: phpmyadmin:latest
ports:
- 8080:80
environment:
- PMA_HOST: mysql
- PMA_PASSWORD: ${MYSQL_ROOT_PASSWORD}
restart: unless-stopped
volumes:
- mysql
Führen Sie docker-compose up -d aus um MySQL mit einem vollständig vernetzten PHPMyAdmin-Container aufzurufen. PMA_HOST von PHPMyAdmin Variable ist auf mysql gesetzt , die auf den MySQL-Dienstnamen verweist. Docker Compose legt Hostnamen automatisch so fest, dass sie mit Dienstnamen übereinstimmen, sodass PHPMyAdmin über das freigegebene Netzwerk eine Verbindung zu MySQL herstellen kann.
Konfigurieren der Installation
Das PHPMyAdmin-Docker-Image unterstützt eine vom Benutzer bereitgestellte Konfigurationsdatei, die Sie über ein Docker-Volume einfügen können. Der Pfad ist /etc/phpmyadmin/config.user.inc.php :
docker run -d
--name phpmyadmin
-e PMA_ARBITRARY=1
-p 8080:80
-v my-config-file.php:/etc/phpmyadmin/config.user.inc.php
phpmyadmin Sie können jede der von PHPMyAdmin unterstützten Konfigurationsvariablen hinzufügen.
Das Image unterstützt auch Umgebungsvariablen für viele allgemeine Einstellungen. Dazu gehören MEMORY_LIMIT , UPLOAD_LIMIT und MAX_EXECUTION_TIME , die jeweils PHP-INI-Werten entsprechen, die möglicherweise angepasst werden müssen, wenn Sie lange laufende oder komplizierte Abfragen verwenden.
Sensible Werte wie PMA_HOST , PMA_PASSWORD und MYSQL_ROOT_PASSWORD , kann mithilfe von Docker-Secrets anstelle von einfachen Umgebungsvariablen eingefügt werden. _FILE anhängen auf den Namen der Variablen und legen Sie den Wert dann auf einen Pfad innerhalb des Containers fest, der den tatsächlichen Wert bereitstellt.
docker run -d --name phpmyadmin -e PMA_HOST_FILE=/run/secrets/pma_host -p 8080:80 phpmyadmin
Zusammenfassung
PHPMyAdmin ist eines der beliebtesten und bekanntesten MySQL-Verwaltungsprogramme. Die Bare-Metal-Installation fügt Ihrem System mehrere Abhängigkeiten hinzu, indem Apache und PHP zusammen mit dem Quellcode der App gebündelt werden.
Durch die Installation von PHPMyAdmin in Docker erhalten Sie eine isolierte Umgebung, die mit einer Handvoll Docker-CLI-Befehlen erstellt, ersetzt und gelöscht werden kann. Das offizielle Image kann eine Verbindung zu jedem MySQL-Server herstellen, auf den von Ihrem Host aus zugegriffen werden kann, einschließlich Datenbanken, die in anderen Docker-Containern ausgeführt werden.
Ausführlichere Anleitungen zum Ausführen und Verwenden von PHPMyAdmin finden Sie in der offiziellen Dokumentation. Es ist besonders wichtig, den Sicherheitsleitfaden zu lesen, damit Sie Ihre Datenbank nicht unbeabsichtigt einem Angriff von außen aussetzen. Sie sollten auch die Best Practices für Docker-Sicherheit berücksichtigen, wenn Sie PHPMyAdmin in einem Container bereitstellen, der der Außenwelt ausgesetzt ist.