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 :
debian
,ubuntu
,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. |
|
-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. |
|
-d , --detached |
Lance le conteneur en arrière-plan, en mode détaché. |
|
--rm |
Supprimer le conteneur lorsqu'il est arrêté. |
|
-e, --env | Passer une variable d'environnement à l'application conteneurisée |
|
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 :
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
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 avecexit
.
Astuce : il est possible de se détacher d'un conteneur sans l'arrêter avec CTRL+P puis CTRL+Q !
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
Visualiser les logs : docker logs
docker logs MON_CONTENEUR
docker logs -f MON_CONTENEUR # -f pour --follow, permet de visualiser en direct le log.
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
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 :
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 !