GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So führen Sie PHPMyAdmin in einem Docker-Container aus

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.


Docker
  1. So führen Sie MySQL in einem Docker-Container aus

  2. So installieren Sie Vim in einem Docker-Container

  3. So listen Sie Docker-Container auf

  4. Wie füge ich Benutzer zum Docker-Container hinzu?

  5. So führen Sie einen Cron-Job in einem Docker-Container aus

So führen Sie den ELK-Stack im Docker-Container aus

Wie man SSH in einen Docker-Container einfügt und Befehle ausführt

So führen Sie eine .NET-App in Docker aus

So führen Sie Grafana in einem Docker-Container aus

So richten Sie einen Apache Docker-Container ein

So führen Sie Docker-Container aus