# Commandes sur les conteneurs ## Description et scope Les commandes liées aux conteneurs permettent de créer, exécuter, superviser et supprimer des conteneurs. Elles sont au cœur de l’utilisation de Docker : un conteneur correspond à un processus isolé lancé à partir d’une image. --- ## `docker container run` / `docker run` Crée et démarre un nouveau conteneur à partir d’une image. C’est la commande la plus utilisée pour lancer des applications. ```bash docker container run -d --name web nginx ``` Mais en pratique, on privilégie la **forme courte** avec : ```bash docker run -d --name web nginx ``` Options utiles : - `-d` : mode détaché (en arrière-plan) - `--name` : donner un nom au conteneur - `-p 8080:80` : publier un port (hôte:conteneur) - `-v volume:/data` : monter un volume --- ## `docker ps` / `docker container ls` Liste les conteneurs en cours d’exécution. Avec l’option `-a`, on obtient aussi les conteneurs arrêtés. ```bash docker ps docker ps -a ``` Équivalent moderne avec les management commands : ```bash docker container ls docker container ls -a ``` **Note historique** `docker ps` est l’alias historique, inspiré de la commande Unix `ps`. La forme moderne et officielle est `docker container ls`. Les deux sont strictement équivalents, mais la documentation Docker privilégie désormais la seconde pour la cohérence de la syntaxe. --- ## `docker start` / `docker stop` / `docker restart` Permettent de gérer l’état d’un conteneur existant. ```bash docker start web docker stop web docker restart web ``` --- ## `docker exec` Exécute une commande dans un conteneur en cours d’exécution. Souvent utilisé pour ouvrir un shell interactif. ```bash docker exec -it web bash ``` - `-i` : interactif - `-t` : allocation d’un pseudo-terminal --- ## `docker logs` / `docker logs` Affiche les logs standard output/standard error d’un conteneur. Très utile pour diagnostiquer un service. ```bash docker logs docker logs web # par exemple si on a un conteneur nommé "web" docker logs -f web # suivre en temps réel (follow) ``` --- ## `docker container inspect` / `docker inspect` Affiche toutes les informations détaillées d’une ressource Docker au format JSON. Elle peut s’appliquer à différents types de ressources : conteneurs, images, volumes, réseaux. ```bash docker container inspect web Exemple pour afficher uniquement l’adresse IP : ```bash docker container inspect -f '{{ .NetworkSettings.IPAddress }}' web ``` **Note historique** La forme hiérarchisée (docker container inspect, docker image inspect, etc.) est la plus claire et permet de préciser explicitement la ressource visée. L’alias générique docker inspect fonctionne aussi, mais il est moins rigoureux car il se base sur l’ID ou le nom fourni sans préciser le type de ressource. Exemple pour afficher uniquement l’adresse IP : ```bash docker inspect -f '{{ .NetworkSettings.IPAddress }}' web ``` --- ## `docker stats` / `docker container stats` Affiche en temps réel l’utilisation des ressources (CPU, mémoire, réseau, disque) par conteneur. Pratique pour comparer la consommation de conteneurs vs machines virtuelles. ```bash docker stats ``` Équivalent moderne : ```bash docker container stats ``` **Note historique** Comme pour `ps`, `docker stats` est un alias historique. La version `docker container stats` est la forme hiérarchisée officielle, intégrée aux management commands. --- ## `docker top` Affiche les processus en cours d’exécution à l’intérieur d’un conteneur. ```bash docker top web ``` --- ## `docker rm` Supprime un conteneur arrêté. ```bash docker rm web ``` Supprimer plusieurs conteneurs en une fois : ```bash docker rm $(docker ps -aq) ``` ⚠️ Pour forcer la suppression d’un conteneur en cours d’exécution : ```bash docker rm -f web ``` ---