Premiers pas avec DOCKER

Sur le site officiel de Docker, vous pourrez télécharger la version compatible avec votre OS. Une fois installée, vous pourrez utiliser les fonctionnalités de Docker via la commande docker.

Supposons que pour les besoins d’un TP, vous souhaitiez pouvoir gérer une base de données MySQL via l’interface Web de phpMyAdmin. Ceci nécessiterait d’installer sur votre système, un serveur Web, le SGBD MySQL, le langage PHP ainsi que phpMyAdmin et de configurer tous ces éléments pour les faire communiquer. Cherchons plutôt un container dans lequel tous ces éléments ont déjà été configurés. Une première solution est d’aller sur le site Docker Hub et de faire une recherche avec pour mots clés MySQL et phpmyadmin. Une autre solution est de directement utiliser l’option search de la commande docker.

% docker search mysql+phpmyadmin
NAME                       DESCRIPTION                                    STARS  OFFICIAL  AUTOMATED
mysql                      MySQL is a widely used, open-source relation…  6353     [OK]
phpmyadmin/phpmyadmin      A web interface for MySQL and MariaDB.         538               [OK]
nazarpc/phpmyadmin         phpMyAdmin as Docker container, based on off…  57                [OK]
...
wnameless/mysql-phpmyadmin MySQL + phpMyAdmin https://index.docker.io/u…  40                [OK]

On obtient un alors un ensemble de container disponibles. La colonne STARS indique la « popularité » du container. Choisissons le container nommé wnameless/mysql-phpmyadmin qui semble convenir à ce que l’on recherche. Pour l’installer, il suffit d’exécuter :

% docker pull wnameless/mysql-phpmyadmin

Une fois installé, pour lancer le container, il suffit d’exécuter

% docker run -d --name mysqlwebadmin -p 8080:80 wnameless/mysql-phpmyadmin

Quelques mots sur les options utilisées :

  • -d : cette option permet de lancer le container en mode détaché si l’utilisateur n’a pas besoin d’accéder à ce dernier via un shell.
  • - -name : permet de donner un nom à un container ce qui permettra ensuite d’y faire référence pour d’autres actions.
  • -p <host_port>:<container_port> : normalement un service qui tourne à l’intérieur d’un container ne peut être accédé que par un processus s’exécutant lui aussi dans le container. L’option -p permet d’associer un port de la machine physique avec un port du container de façon à permettre à des processus extérieurs d’accéder à un service offert par le container. En l’occurence pour cette exemple le container fait tourner un serveur Apache sur son port 80 que l’on rend accessible à des processus externes via le port 8080.

Il suffit maintenant d’ouvrir un navigateur sur votre machine et de vous rendre à l’URL http://localhost:8080/ afin de constater qu’effectivement un serveur Web est en écoute. En vous connectant à l’URL http://localhost:8080/phpmyadmin/ vous accéderez à l’interface de gestion de la base de données MySQL embarquée dans le container. La documentation du container disponible sur Docker Hub nous indique que le login à utiliser est root et qu’il n’y a pas de mot de passe.