Skip to main content

Commandes de base

Exécuter un conteneur : docker run

Commande de base : 

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Le nom de l'image docker à utiliser doit être spécifié avec le paramètre image. Quelques exemples :

  • Distributions Linux : debianubuntu, alpine
  • Logiciels et CMS : wordpress, prestashop
  • Langages de programmation : php, python
  • Bases de données : mysql, postgresql

Il existe actuellement 11 millions d'image (août 2025) sur le Docker Hub (que nous approfondirons plus tard).

La commande docker run propose de nombreux paramètres dont voici les principaux :

Paramètre Description Exemple
--name Attribuer un nom au conteneur.
Si il n'est pas défini, Docker générera un nom aléatoire à partir d'un dictionnaire de mots.
docker run ubuntu --name=test1
docker run ubuntu --name=test2
docker run ubuntu --name=test3
-ti Les paramètres -t et -i permettent d’ouvrir un terminal interactif dans le conteneur : -t alloue un pseudo-terminal, et -i garde l’entrée ouverte.
docker run -ti ubuntu
# je suis redirigé dans la console du conteneur
-d, --detached Lance le conteneur en arrière-plan, en mode détaché.
docker run -d ubuntu
# le conteneur se lance en arrière-plan
--rm Supprimer le conteneur lorsqu'il est arrêté.

 

docker run --rm -ti ubuntu
# le conteneur se lance dans la console
# Il sera supprimé après la sorite (exit)
-e, --env Passer une variable d'environnement à l'application conteneurisée
docker run -e VAR1=value1
# la variable VAR1 sera définie dans le conteneur


image.png

Nous approfondirons plus tard d'autres paramètres de la commande docker run.

La commande docker run se termine par la commande à lancer dans le conteneur ainsi que ses paramètres. L'ajout de cette commande est optionnel, il n'est pas toujours nécessaire de l'indiquer.

Certaines images ne lancent pas automatiquement d'invite de commande bash.
Par exemple, l'image officielle python démarre sur une invite de commande python :

image.png

Lister les conteneurs : docker ps

La commande docker ps liste les conteneurs démarrés sur la machine. Le paramètre --all, -a permet d'afficher les conteneurs stoppés.

docker ps
docker ps -a

image.png

  • test_1 est lancé en mode détaché (-d), il tourne en arrière-plan.
  • test_2 est lancé en mode attaché, il s'arrête lorsque je le quitte avec exit.

Astuce : il est possible de se détacher d'un conteneur sans l'arrêter avec CTRL+P puis CTRL+Q !

image.png

Après avoir pressé CTRL+P puis CTRL+Q, je suis détaché du conteneur test_3 qui tourne encore en arrière-plan.

Arrêt d'un conteneur : docker stop et docker start

docker start MON_CONTENEUR  # démarre le conteneur
docker stop MON_CONTENEUR # arrête le conteneur
docker rm MON_CONTENEUR # supprime le conteneur

image.png

Visualiser les logs : docker logs

docker logs MON_CONTENEUR
docker logs -f MON_CONTENEUR # -f pour --follow, permet de visualiser en direct le log.

image.png

La commande date est lancée au démarrage du conteneur détaché, je ne vois pas le résultat.
J'y accède plus tard avec la commande docker logs.

S'attacher à un conteneur : docker attach

docker attach MON_CONTENEUR

image.png

Le conteneur a été lancé en arrière-plan (mode détaché) avec -d. Je peux y accéder plus tard.

Exécuter une commande : docker exec

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

La syntaxe de cette commande ressemble à docker run. La différence est qu'ici, la commande est lancée dans un conteneur déjà en cours d'exécution.

La commande docker exec est utile pour lancer une invite de commande (bash) dans un conteneur qui n'en propose pas forcément. Exemple avec python :

image.png

Je lance un conteneur python sans préciser de commande. La commande par défaut de l'image docker est utilisée.
Lorsque je m'attache au conteneur avec docker attach, je suis dans une invite de commande python.
Je me détache du conteneur et je lance une invite de commande bash avec docker exec.

La commande docker exec exécute un nouveau processus dans le conteneur. La sortie de ce processus n'est pas visible dans les logs du conteneur !