Démarrer un conteneur
Pour démarrer spontanément un conteneur, utiliser la commande run
suivie du nom de l'image:
docker run nginx:latest
L'image étant inconnue sur la machine, elle est d'abord téléchargée.
Le conteneur est exécute en foreground (en premier plan), ce qui empêche d'exécuter d'autre commandes dans le terminal.
Stopper le conteneur avec Ctrl+C
, puis relancer un conteneur NGINX en background (en arrière plan) avec l'option -d
(pour "detached"):
docker run -d nginx:latest
L'ID du conteneur est affiché. Cette fois-ci, le terminal est accessible pour exécuter d'autres commandes.
« Mais comment savoir si le conteneur est bien lancé ? »
Conteneurs actifs et commandes
Pour lister les conteneurs actifs, utiliser la commande ps
:
docker ps
[output]CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[output]864f22788f56 nginx:latest "/docker-entrypoint.…" 17 seconds ago Up 16 seconds 80/tcp fervent_spence
Plusieurs informations sont affichées dont la commande du conteneur: /docker-entrypoint.sh nginx -g 'daemon off;'
.
Un conteneur possède un point d'entrée (entrypoint): une commande qu'il doit exécuter au démarrage qui est le processus principal du conteneur. Tant que cette commande s'exécute, le conteneur est actif.
Si pour une certaine raison la commande est stoppée, le conteneur l'est également.
Arrêter un conteneur
Pour stopper le conteneur NGINX démarré précédemment, utiliser la commande stop
suivi de l'identifiant du conteneur puis vérifier qu'il n'apparaîsse plus dans la liste des conteneurs actifs:
docker stop 864f22788f56
docker ps
La commande stop
effectue un arrêt normal (signal SIGTERM
puis SIGKILL
). Un arrêt plus "radical" peut être effectué avec la commande kill
(SIGKILL
uniquement).
Nommer un conteneur
Utiliser les identifiants des conteneurs n'est pas ce qu'il y a de plus simple à retenir. On peut nommer les conteneurs pour faciliter leur manipulation avec l'option --name
:
docker run -d --name web_server nginx
En listant les conteneurs actifs, on observe que la colonne NAMES
affiche web_server
. Ce nom est utilisable pour de multiples commandes à la place de l'identifiant:
docker stop web_server
Redémarrer & supprimer un conteneur
Lorsqu'un conteneur est arrêté, il n'est pas supprimé de la machine. On peut lister tous les conteneurs avec l'option -a
(ou --all
):
docker ps -a
[output]CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[output]73f16228a9bd nginx "/docker-entrypoint.…" 13 seconds ago Exited (0) 5 seconds ago web_server
Noter la colonne
STATUS
pour différencier les conteneurs actifs des inactifs.
Pour redémarrer le conteneur NGINX, utiliser la commande start
:
docker start web_server
Le conteneur est de nouveau actif.
Pour le supprimer, utiliser la commande rm
:
docker rm web_server
Note: Arrêter le conteneur au préalable. L'utilisation de l'option
-f
(ou--force
) équivaut à un appel àdocker kill
avant la suppression.
Astuce:
Si l'on souhaite qu'un conteneur soit supprimé dès son arrêt, on peut utiliser l'option --rm
:
docker run -d --rm --name web_server nginx
Arrêter le conteneur et vérifier l'affichage de docker ps -a
.