Comment exécuter PHPMyAdmin dans un conteneur Docker – CloudSavvy IT
Agence web » Actualités du digital » Comment exécuter PHPMyAdmin dans un conteneur Docker –

Comment exécuter PHPMyAdmin dans un conteneur Docker –

PHPMyAdmin est une interface d’administration populaire pour les bases de données MySQL et MariaDB. Il vous permet d’interagir avec vos schémas, tables et données à l’aide d’un navigateur Web.

Le projet a une image Docker officielle qui simplifie le déploiement dans des environnements conteneurisés. Voici comment utiliser l’image pour lancer rapidement une nouvelle instance PHPMyAdmin.

Utilisation de base

L’installation la plus simple permet à un conteneur PHPMyAdmin de se connecter à n’importe quel serveur de base de données accessible :

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

Cette commande démarre PHPMyAdmin sur le port 8080. Visitez localhost:8080 dans votre navigateur pour voir l’écran de connexion. La présence du PMA_ARBITRARY La variable d’environnement entraîne l’affichage d’un formulaire de connexion au serveur. Spécifiez les informations d’identification de l’hôte et de l’utilisateur de votre base de données MySQL ou MariaDB pour vous connecter.

Lorsque vous utilisez cette méthode, vous verrez normalement un avertissement PHPMyAdmin indiquant que « certaines fonctionnalités étendues ont été désactivées ». Cela se produit lorsque le serveur auquel vous êtes connecté n’a pas de base de données appelée phpmyadmin. PHPMyAdmin utilise ce schéma pour stocker ses propres données de configuration.

Suivez le lien de l’avertissement vers « Créer une base de données » pour terminer l’installation. Votre compte utilisateur aura besoin d’une autorisation pour créer de nouvelles bases de données sur le serveur.

Préréglage d’un serveur

Au lieu d’autoriser un accès arbitraire, vous pouvez démarrer le conteneur PHPMyAdmin avec une connexion serveur préconfigurée. Fournir le PMA_HOST et PMA_PORT variables d’environnement au lieu de PMA_ARBITRARY:

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

PMA_PORT est facultatif. Il utilisera la valeur par défaut MySQL de 3306 lorsqu’aucune valeur n’est fournie.

Démarrer le conteneur avec ces variables obligera PHPMyAdmin à travailler avec le mysql.example.com serveur. Vous serez invité à entrer un nom d’utilisateur et un mot de passe sur l’écran de connexion, mais vous n’aurez pas besoin de fournir un nom d’hôte.

PHPMyAdmin peut également être configuré pour présenter plusieurs options de serveur. La fourniture PMA_HOSTS et PMA_PORTS sous forme de listes de connexions séparées par des virgules pour activer cette fonctionnalité.

Utiliser un conteneur Docker MySQL

Un autre cas d’utilisation courant est la connexion à un serveur MySQL ou MariaDB exécuté dans un conteneur Docker séparé. Vous pouvez soit exposer le serveur de base de données sur un port, soit connecter les deux conteneurs à un réseau Docker partagé. Dans les deux cas, utilisez le PMA_HOST et PMA_PORT Les variables d’environnement indiqueront à PHPMyAdmin comment se connecter au serveur.

Les liens Docker hérités sont également pris en charge :

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

Cette commande permet de connecter PHPMyAdmin au my_mysql_container conteneur sans configurer manuellement des liens réseau. Cette fonctionnalité est obsolète dans Docker, il est donc préférable de passer aux commandes réseau :

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

Comme alternative, vous pouvez démarrer PHPMyAdmin avec une connexion réseau préconfigurée à l’aide de Docker’s --network drapeau:

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

Maintenant, PHPMyAdmin pourra atteindre le conteneur MySQL via le réseau partagé. Met le PMA_HOST variable d’environnement à 172.17.0.1 lorsque vous démarrez le conteneur.

Simplifier le déploiement avec Docker Compose

L’écriture d’un fichier Docker Compose simplifie les déploiements non triviaux. Vous pouvez afficher un nouveau conteneur PHPMyAdmin de manière reproductible en utilisant le docker-compose up -d commander.

Voici un docker-compose.yml pour PHPMyAdmin en mode de connexion arbitraire :

version: "3"

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

Docker Compose vous aide également à créer une pile avec une nouvelle installation de base de données MySQL et un conteneur 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

Cours docker-compose up -d pour faire apparaître MySQL avec un conteneur PHPMyAdmin entièrement en réseau. PHPMyAdmin’s PMA_HOST la variable est définie sur mysql, en référençant le nom du service MySQL. Docker Compose définit automatiquement les noms d’hôte pour qu’ils correspondent aux noms de service, permettant à PHPMyAdmin de se connecter à MySQL en utilisant le réseau partagé.

Configuration de l’installation

L’image PHPMyAdmin Docker prend en charge un fichier de configuration fourni par l’utilisateur que vous pouvez injecter via un volume Docker. Le chemin est /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

Vous pouvez ajouter n’importe quelle variable de configuration prise en charge par PHPMyAdmin.

L’image prend également en charge les variables d’environnement pour de nombreux paramètres courants. Ceux-ci inclus MEMORY_LIMIT, UPLOAD_LIMIT et MAX_EXECUTION_TIME, dont chacune correspond aux valeurs PHP INI qui peuvent devoir être ajustées si vous utilisez des requêtes longues ou compliquées.

Les valeurs sensibles, telles que PMA_HOST, PMA_PASSWORD, et MYSQL_ROOT_PASSWORD, peut être injecté à l’aide de secrets Docker au lieu de variables d’environnement simples. Ajouter _FILE au nom de la variable, puis définissez la valeur sur un chemin à l’intérieur du conteneur qui fournit la valeur réelle.

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

Résumé

PHPMyAdmin est l’un des utilitaires d’administration MySQL les plus populaires et les plus connus. L’installation sans système d’exploitation ajoute plusieurs dépendances à votre système, en regroupant Apache et PHP avec le code source de l’application.

L’installation de PHPMyAdmin dans Docker vous offre un environnement isolé qui peut être créé, remplacé et supprimé à l’aide d’une poignée de commandes Docker CLI. L’image officielle peut se connecter à n’importe quel serveur MySQL accessible depuis votre hôte, y compris les bases de données s’exécutant dans d’autres conteneurs Docker.

Des conseils plus détaillés sur l’exécution et l’utilisation de PHPMyAdmin peuvent être trouvés dans la documentation officielle. Il est particulièrement important de consulter le guide de sécurité afin de ne pas laisser involontairement votre base de données exposée à un risque d’attaque externe. Vous devez également prendre en compte les bonnes pratiques de sécurité Docker lors du déploiement de PHPMyAdmin dans un conteneur exposé au monde extérieur.

★★★★★