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.