Quelques commandes

La commande ps permet de lister les container chargés en mémoire :

% docker ps
CONTAINER ID   IMAGE                         COMMAND                CREATED         STATUS         PORTS                                    NAMES
47028b358ee5   wnameless/mysql-phpmyadmin   "/bin/sh -c 'mysqld_…"  19 minutes ago  Up 19 minutes  22/tcp, 3306/tcp, 0.0.0.0:8080->80/tcp   mysqlwebadmin

Cette commande vous renvoie en particulier :

  • le numéro d’identifiant associé au container,
  • le nom que vous avez donné au container
  • la liste des ports en écoute sur le container et leur redirection éventuelle pour un accès depuis l’extérieur du container

La commande stop permet d’arrêter l’exécution d’un container, il faut fournir en argument soit l’id du container, soit son nom:

% docker stop mysqlwebadmin

Le container est toujours en mémoire et la commande start permet de relancer son exécution.

% docker start mysqlwebadmin
% docker ps
CONTAINER ID   IMAGE                         COMMAND                CREATED         STATUS         PORTS                                    NAMES
47028b358ee5   wnameless/mysql-phpmyadmin   "/bin/sh -c 'mysqld_…"  25 minutes ago  Up 2 seconds  22/tcp, 3306/tcp, 0.0.0.0:8080->80/tcp   mysqlwebadmin

Pour définitivement supprimer un container en mémoire, il faut stopper son exécution puis utiliser la commande rm :

% docker stop mysqlwebadmin
% docker rm mysqlwebadmin

Notez que ceci ne supprime pas l’image du container qui est présente sur votre disque. Pour s’en assurer il suffit de lister les containers présents sur votre disque en utilisant la commande images :

% docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
jupyter/datascience-notebook   latest              b51069e2e38f        2 months ago        6.07GB
ubuntu                         latest              f975c5035748        3 months ago        112MB
jupyter/jupyterhub             latest              b55a5f52a57e        2 years ago         757MB
wnameless/mysql-phpmyadmin     latest              006947371ad9        4 years ago         839MB

Lors de la description de la commande ps en début de ce document, nous avons pu voir que le port 22 du container wnameless/mysql-phpmyadmin était en écoute. Il y a donc un serveur SSH en exécution qui doit nous permettre de nous connecter sur le container. Relançons ce dernier en associant le port 22 dun container au port 2222 de notre machine:

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

La documetation du container précise que le mot de passe pour l’urilisateur root est admin :

% ssh root@localhost -p 2222
root@localhost\'s password:
Welcome to Ubuntu 12.04 LTS (GNU/Linux 4.9.87-linuxkit-aufs x86_64)
...
root@4cf5438cc613:~#

Nous sommes à présent dans le container et nous pouvons par exemple voir la liste des processus en exécution:

root@4cf5438cc613:~# ps x
PID TTY      STAT   TIME COMMAND
  1 ?        Ss     0:00 /bin/sh -c mysqld_safe & service apache2 start; /usr/sbin/sshd -D
  5 ?        S      0:00 /bin/sh /usr/bin/mysqld_safe
 79 ?        Ss     0:00 /usr/sbin/apache2 -k start
 83 ?        S      0:00 /usr/sbin/sshd -D
342 ?        S      0:00 logger -t mysqld -p daemon.error
362 ?        Ss     0:00 sshd: root@pts/0
374 pts/0    Ss     0:00 -bash
382 pts/0    R+     0:00 ps x
root@4cf5438cc613:~# exit
%

On voit donc bien que ce container lance un serveur Web Apache et le gestionnaire de bases de données MySQL.

Pour définitivement supprimer du disque l’image du container il suffit d’utiliser la commande rmi en spécifiant l’id de l’image à supprimer (obtenu via la commande images) :

% docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
jupyter/datascience-notebook   latest              b51069e2e38f        2 months ago        6.07GB
ubuntu                         latest              f975c5035748        3 months ago        112MB
jupyter/jupyterhub             latest              b55a5f52a57e        2 years ago         757MB
wnameless/mysql-phpmyadmin     latest              006947371ad9        4 years ago         839MB
% docker rmi 006947371ad9

Avertissement

Une image ne peut pas être effacée si le container réside en mémoire.