GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come eseguire PHPMyAdmin in un contenitore Docker

PHPMyAdmin è una popolare interfaccia di amministrazione per i database MySQL e MariaDB. Ti consente di interagire con schemi, tabelle e dati utilizzando un browser web.

Il progetto ha un'immagine Docker ufficiale che semplifica la distribuzione in ambienti containerizzati. Ecco come utilizzare l'immagine per avviare rapidamente una nuova istanza PHPMyAdmin.

Utilizzo di base

L'installazione più semplice consente a un contenitore PHPMyAdmin di connettersi a qualsiasi server di database accessibile:

docker run -d --name phpmyadmin -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin

Questo comando avvia PHPMyAdmin sulla porta 8080. Visita localhost:8080 nel tuo browser per vedere la schermata di accesso. La presenza del PMA_ARBITRARY la variabile di ambiente comporta la visualizzazione di un modulo di connessione al server. Specifica le credenziali dell'host e dell'utente del tuo database MySQL o MariaDB per accedere.

Quando utilizzi questo metodo, normalmente vedrai un avviso PHPMyAdmin che "alcune funzionalità estese sono state disattivate". Ciò si verifica quando il server a cui sei connesso non ha un database chiamato phpmyadmin . PHPMyAdmin utilizza questo schema per memorizzare i propri dati di configurazione.

Segui il collegamento dell'avviso a "Crea un database" per completare l'installazione. Il tuo account utente avrà bisogno dell'autorizzazione per creare nuovi database sul server.

Preimpostazione di un server

In alternativa a consentire l'accesso arbitrario, puoi avviare il contenitore PHPMyAdmin con una connessione al server preconfigurata. Fornisci il PMA_HOST e PMA_PORT variabili di ambiente invece di PMA_ARBITRARY :

docker run -d --name phpmyadmin -e PMA_HOST=mysql.example.com -e PMA_PORT=33060 -p 8080:80 phpmyadmin

PMA_PORT è facoltativo. Utilizzerà l'impostazione predefinita MySQL di 3306 quando non viene fornito alcun valore.

L'avvio del contenitore con queste variabili costringerà PHPMyAdmin a lavorare con mysql.example.com server. Ti verrà richiesto un nome utente e una password nella schermata di accesso, ma non sarà necessario fornire un nome host.

PHPMyAdmin può anche essere configurato per presentare più opzioni del server. Fornisci PMA_HOSTS e PMA_PORTS come elenchi di connessioni separati da virgole per abilitare questa funzionalità.

Utilizzo di un MySQL Docker Container

Un altro caso d'uso comune è la connessione a un server MySQL o MariaDB in esecuzione in un contenitore Docker separato. Puoi esporre il server di database su una porta o connettere entrambi i container a una rete Docker condivisa. In entrambi i casi, usa il PMA_HOST e PMA_PORT le variabili di ambiente indicheranno a PHPMyAdmin come connettersi al server.

Sono supportati anche i collegamenti Docker legacy:

docker run -d --name phpmyadmin --link my_mysql_container:db -p 8080:80 phpmyadmin

Questo comando ti consente di connettere PHPMyAdmin a my_mysql_container contenitore senza configurare manualmente i collegamenti di rete. Questa funzionalità è deprecata in Docker, sebbene sia preferibile passare ai comandi di rete:

docker network create phpmyadmin
docker network connect phpmyadmin mysql_container_name --ip 172.17.0.1
docker network connect phpmyadmin phpmyadmin_container_name

In alternativa, puoi avviare PHPMyAdmin con una connessione di rete preconfigurata utilizzando --network di Docker bandiera:

docker run -d --name phpmyadmin --network phpmyadmin -p 8080:80 phpmyadmin

Ora PHPMyAdmin sarà in grado di raggiungere il container MySQL tramite la rete condivisa. Imposta il PMA_HOST variabile di ambiente su 172.17.0.1 quando avvii il contenitore.

Semplificazione della distribuzione con Docker Compose

La scrittura di un file Docker Compose semplifica le distribuzioni non banali. Puoi aprire un nuovo contenitore PHPMyAdmin in modo ripetibile usando il docker-compose up -d comando.

Ecco un docker-compose.yml per PHPMyAdmin in modalità di connessione arbitraria:

version: "3"

services:
  phpmyadmin:
    image: phpmyadmin:latest
    ports:
        - 8080:80
    environment:
        - PMA_ARBITRARY=1
    restart: unless-stopped

Docker Compose ti aiuta anche a creare uno stack con una nuova installazione di database MySQL e un contenitore PHPMyAdmin:

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

Esegui docker-compose up -d per far apparire MySQL con un container PHPMyAdmin completamente connesso in rete. PMA_HOST di PHPMyAdmin la variabile è impostata su mysql , facendo riferimento al nome del servizio MySQL. Docker Compose imposta automaticamente i nomi host in modo che corrispondano ai nomi dei servizi, consentendo a PHPMyAdmin di connettersi a MySQL utilizzando la rete condivisa.

Configurazione dell'installazione

L'immagine PHPMyAdmin Docker supporta un file di configurazione fornito dall'utente che è possibile iniettare tramite un volume Docker. Il percorso è /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

Puoi aggiungere una qualsiasi delle variabili di configurazione supportate da PHPMyAdmin.

L'immagine supporta anche le variabili di ambiente per molte impostazioni comuni. Questi includono MEMORY_LIMIT , UPLOAD_LIMIT e MAX_EXECUTION_TIME , ognuno dei quali corrisponde a valori PHP INI che potrebbero dover essere modificati se utilizzi query complicate o di lunga durata.

Valori sensibili, come PMA_HOST , PMA_PASSWORD e MYSQL_ROOT_PASSWORD , può essere iniettato utilizzando i segreti Docker invece di semplici variabili di ambiente. Aggiungi _FILE al nome della variabile, quindi imposta il valore su un percorso all'interno del contenitore che fornisce il valore effettivo.

docker run -d --name phpmyadmin -e PMA_HOST_FILE=/run/secrets/pma_host -p 8080:80 phpmyadmin

Riepilogo

PHPMyAdmin è una delle utilità di amministrazione MySQL più popolari e conosciute. L'installazione bare metal aggiunge diverse dipendenze al tuo sistema, raggruppando Apache e PHP insieme al codice sorgente dell'app.

L'installazione di PHPMyAdmin in Docker offre un ambiente isolato che può essere creato, sostituito ed eliminato utilizzando una manciata di comandi Docker CLI. L'immagine ufficiale può connettersi a qualsiasi server MySQL accessibile dal tuo host, inclusi i database in esecuzione in altri contenitori Docker.

Una guida più dettagliata sull'esecuzione e l'utilizzo di PHPMyAdmin può essere trovata nella documentazione ufficiale. È particolarmente importante rivedere la guida alla sicurezza in modo da non lasciare involontariamente il database a rischio di attacco esterno. Dovresti anche considerare le migliori pratiche di sicurezza Docker quando distribuisci PHPMyAdmin all'interno di un container esposto al mondo esterno.


Docker
  1. Come eseguire MySQL in un contenitore Docker

  2. Come SSH in un contenitore Docker

  3. Come installare Vim in un contenitore Docker

  4. Come uscire da un container Docker

  5. Come inviare un segnale al programma eseguito in un contenitore docker?

Come eseguire lo stack ELK su Docker Container

Come eseguire SSH in un contenitore Docker ed eseguire comandi

Come eseguire un'app .NET in Docker

Come eseguire Grafana in un contenitore Docker

Come configurare un container Docker Apache

Come eseguire i contenitori Docker