20/04/2021

4. Commandes

Lu 1063 fois Licence Creative Commons

Un conteneur possède un processus principal et devient inactif lorsque celui-ci est arrêté.
Démarrez un conteneur ubuntu en foreground: reste t-il ouvert ?

Repérer quelle était la commande du conteneur.


Modifier la commande d'un conteneur

La commande d'une image Ubuntu est /bin/bash, ce qui termine de s'exécuter presque instantanément après le démarrage du conteneur. Pour changer la commande par défaut, il faut l'ajouter à la suite du nom de l'image:

docker run --rm ubuntu echo 42
[output]42

Le conteneur exécute la commande, 42 s'affiche dans le terminal, puis il est arrêté.

Mode interactif

Pour démarrer un conteneur et pouvoir y utiliser un terminal à l'intérieur, il faudra ajouter les options suivantes:

docker run --rm -it ubuntu
root@a306eb730e40:/#

Note: en ne précisant pas de commande, c'est celle par défaut qui sera exécutée (/bin/bash).

Exécutez quelques commandes de base (whoami, pwd, ls, ...) puis quitter le conteneur avec exit.
Cette méthode permet d'essayer rapidement des outils CLI d'images particulières.

Commandes dans un conteneur actif

Démarrez un conteneur:

docker run -d --rm --name ubuntu ubuntu:latest sleep 300

Pour exécuter des commandes dans un conteneur déjà démarré, utilisez la commande exec suivi du conteneur et de la commande:

docker exec ubuntu ls -l
[output]total 64
[output]drwxr-xr-x   2 root root 4096 Dec  2 12:43 bin
[output]drwxr-xr-x   2 root root 4096 Apr 24  2018 boot
[output]...

Il est également possible d'exécuter des commandes en mode interactif. Pour utiliser Bash:

docker exec -it ubuntu /bin/bash
root@5490d4a2996c:/#

Disposer d'un accès via terminal pour un conteneur actif peut s'avérer pratique pour le debug.