Les bases commandes de bases docker¶
Pour savoir utiliser Docker, certaines commandes sont à connaitre. Et certaines seront dans des pages spécifiques car il y a beaucoup plus à dire.
Savoir si docker tournent¶
Il y a deux façon majeurs de savoir que Docker tournent ou non sur notre machine. on peut regarder si le deamon docker répond avec la commande suivante
Ou bien regarder avec systemctl si c'est actif (et accessoirement si docker se lance au démarrage de la machine)
$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-06-24 09:06:59 CEST; 7h ago
Invocation: 9a8d938682c74dc3b5302e6332eea15d
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 1644 (dockerd)
Tasks: 17
Memory: 39.5M (peak: 131.5M, swap: 8.7M, swap peak: 8.7M)
CPU: 5.507s
CGroup: /system.slice/docker.service
└─1644 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Récupérer une image docker¶
Par défaut, docker ira récupérer les images dans docker hub. C'est pour ça ça que quand on pull, on n'utilises uniquement le nom. On peut aussi rajouter un tag, si on en ajoute pas, par défaut cela prendre le tag latest
par exemple, pour récupérer l'image nginx on fait
on peut aussi récupérer des images de système d'exploitation
Question
Il se passe quoi si on essaye de pull l'image docker de rocky linux?
Il y aura un une erreur à cause de la façon dont Red Hat (que dépend almalinux ou rocky), fait des realase de version et imposent d'utiliser un tag.
pour pouvoir récupérer l'image rockylinux il faut utiliser la commande suivante
Lister les conteneurs¶
Si vous connaissez la commande ps sur Linux, docker garde la même syntax de logique. Par exemple, pour lister tous les conteuneurs actifs:
Mais certains conteneurs peuvent être éteind ou bien dans un état non voulu qui l'empêche de démarrer
et pour avoir uniquement l'id du conteneur, il faut utiliser l'option -q qui peut être combiner avec l'option -a
Lancer un docker¶
Pour lancer un conteuneur, on utilises la commande docker run avec le nom de l'image voulu. Si on reprend notre première exemple :
on demande à docker de lancer l'image "hello-world". Et toutes les images fonctionnent pareil
comme on lance un processus, le conteneur va se lancer et selon ce qui se passe le conteneur va:
- s'arrêter directement
- debian
- hello-world
- s'exécuter au premier plan jusqu'à qu'on kill le processus
- nginx
si on fait un docker ps, on verra qu'il n'y a pas de docker lancé. comme a dit un grand mage

Lancer un conteneur en arrière plan¶
Et si on veut que le conteneur contiue de tourner en arrière plan comme pour nginx, il faut rajouter l'option -d
Intéragir au conteneur au lancement¶
Imaginons que vous voulez voir si votre conteneur debian a bien accès directement à internet. Comment vous pouvez faire ?
l'option la plus simple et de rajouter les arguments -i (interaftif) et -t (terminal) pour pouvoir lancer des commandes
$ docker run -it debian
root@85248acd9f2a:/# apt update
Get:1 http://deb.debian.org/debian trixie InRelease [140 kB]
Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
Get:4 http://deb.debian.org/debian trixie/main amd64 Packages [9671 kB]
Get:5 http://deb.debian.org/debian trixie-updates/main amd64 Packages [5412 B]
Get:6 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [223 kB]
Fetched 10.1 MB in 4s (2619 kB/s)
All packages are up to date.
root@85248acd9f2a:/#
Supprimer un conteneur dès qu'il s'arrête¶
Un des problèmes de docker c'est qu'un conteneur lancé reste en mémoire de docker
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85248acd9f2a debian "bash" About a minute ago Exited (0) 3 seconds ago fervent_hopper
5297f5129756 nginx "/docker-entrypoint.…" 25 hours ago Exited (0) 25 hours ago vigorous_diffie
9f9bde33b8d7 debian "bash" 25 hours ago Exited (0) 25 hours ago objective_fermi
6e6bb25a0942 debian "bash" 25 hours ago Exited (0) 25 hours ago nostalgic_hofstadter
76c52e74f795 hello-world "/hello" 43 hours ago Exited (0) 43 hours ago sweet_mclaren
pour régler ce problème on rajoute l'option --rm pour que dès que le conteneur s'arrête, il est effacé
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85248acd9f2a debian "bash" About a minute ago Exited (0) 3 seconds ago fervent_hopper
5297f5129756 nginx "/docker-entrypoint.…" 25 hours ago Exited (0) 25 hours ago vigorous_diffie
9f9bde33b8d7 debian "bash" 25 hours ago Exited (0) 25 hours ago objective_fermi
6e6bb25a0942 debian "bash" 25 hours ago Exited (0) 25 hours ago nostalgic_hofstadter
76c52e74f795 hello-world "/hello" 43 hours ago Exited (0) 43 hours ago sweet_mclaren
$ docker run --rm hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85248acd9f2a debian "bash" 4 minutes ago Exited (0) 2 minutes ago fervent_hopper
5297f5129756 nginx "/docker-entrypoint.…" 25 hours ago Exited (0) 25 hours ago vigorous_diffie
9f9bde33b8d7 debian "bash" 25 hours ago Exited (0) 25 hours ago objective_fermi
6e6bb25a0942 debian "bash" 25 hours ago Exited (0) 25 hours ago nostalgic_hofstadter
76c52e74f795 hello-world "/hello" 43 hours ago Exited (0) 43 hours ago sweet_mclaren
on voit bien qu'entre les deux appels, il n'y a pas de nouveau conteneur qui restent dans les processus
Voir les logs du conteneur¶
pour voir les logs d'un conteneurs, il faut dans un premier temps lancé un conteneur (merci Jamy). On va lancé un petit nginx en arrière plan
on vérifie que le conteneur n'a pas de problème
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
64c13627bd46 nginx "/docker-entrypoint.…" 50 seconds ago Up 49 seconds 80/tcp nostalgic_cannon
et là on remarque pas mal d'info mais pour le moment on va s'interesser à 2: - CONTAINER ID - NAMES
Avec ces infos on va pouvoir voir les logs du conteneurs avec la commande docker logs
$ docker logs nostalgic_cannon
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2026/06/26 08:59:47 [notice] 1#1: using the "epoll" event method
2026/06/26 08:59:47 [notice] 1#1: nginx/1.31.2
2026/06/26 08:59:47 [notice] 1#1: built by gcc 14.2.0 (Debian 14.2.0-19)
2026/06/26 08:59:47 [notice] 1#1: OS: Linux 6.12.90+deb13.1-amd64
2026/06/26 08:59:47 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1024:524288
2026/06/26 08:59:47 [notice] 1#1: start worker processes
2026/06/26 08:59:47 [notice] 1#1: start worker process 29
2026/06/26 08:59:47 [notice] 1#1: start worker process 30
2026/06/26 08:59:47 [notice] 1#1: start worker process 31
2026/06/26 08:59:47 [notice] 1#1: start worker process 32
2026/06/26 08:59:47 [notice] 1#1: start worker process 33
2026/06/26 08:59:47 [notice] 1#1: start worker process 34
2026/06/26 08:59:47 [notice] 1#1: start worker process 35
2026/06/26 08:59:47 [notice] 1#1: start worker process 36
2026/06/26 08:59:47 [notice] 1#1: start worker process 37
2026/06/26 08:59:47 [notice] 1#1: start worker process 38
2026/06/26 08:59:47 [notice] 1#1: start worker process 39
2026/06/26 08:59:47 [notice] 1#1: start worker process 40
2026/06/26 08:59:47 [notice] 1#1: start worker process 41
2026/06/26 08:59:47 [notice] 1#1: start worker process 42
2026/06/26 08:59:47 [notice] 1#1: start worker process 43
2026/06/26 08:59:47 [notice] 1#1: start worker process 44
Une autre option très interessante avec docker logs et l'option -f qui permet de faire un follow des logs en direct.
Cette option est notamment utile pour voir si le conteneur démarre bien sans avoir besoin de se connecter et de garder le conteneur en intéractif
Stopper un conteneur¶
Pour stopper un conteneur qui est lancé en arrière plan, il faut utiliser la commande docker stop avec le nom du conteneur
si on regarde les processus docker en cours, notre conteneur n'est plus actifs mais existe toujours dans les processus arrêter
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
64c13627bd46 nginx "/docker-entrypoint.…" 11 minutes ago Exited (0) 53 seconds ago nostalgic_cannon
85248acd9f2a debian "bash" 18 minutes ago Exited (0) 16 minutes ago fervent_hopper
5297f5129756 nginx "/docker-entrypoint.…" 25 hours ago Exited (0) 25 hours ago vigorous_diffie
9f9bde33b8d7 debian "bash" 25 hours ago Exited (0) 25 hours ago objective_fermi
6e6bb25a0942 debian "bash" 25 hours ago Exited (0) 25 hours ago nostalgic_hofstadter
76c52e74f795 hello-world "/hello" 43 hours ago Exited (0) 43 hours ago sweet_mclaren
Supprimer un conteneur¶
Mais là on commence à avoir beaucoup de conteneur qui ne servent pas il faudrait pouvoir s'en débarrasser. Pour cela la commande docker rm est notre ami.
Supprimer un conteneur¶
Pour supprimer un conteneur, on va simplement utiliser son ID ou son nom
$ docker rm nostalgic_cannon
nostalgic_cannon
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85248acd9f2a debian "bash" 21 minutes ago Exited (0) 19 minutes ago fervent_hopper
5297f5129756 nginx "/docker-entrypoint.…" 25 hours ago Exited (0) 25 hours ago vigorous_diffie
9f9bde33b8d7 debian "bash" 25 hours ago Exited (0) 25 hours ago objective_fermi
6e6bb25a0942 debian "bash" 25 hours ago Exited (0) 25 hours ago nostalgic_hofstadter
76c52e74f795 hello-world "/hello" 43 hours ago Exited (0) 43 hours ago sweet_mclaren
Supprimer tous les conteneurs¶
On est des informaticiens, on n'aime pas se faire chier à tous supprimer un par un à la main. Et c'est pour ça que Linux est beau.
on pourrais supprimer plusieurs conteneur comme ceci
Mais on a vu plutôt la commande docker ps -aq qui nous permet de récupérer uniquement les ID
# Sur linux utiliser $() permet de récupérer les résultats d'une sous commande
$ docker rm $(docker ps -aq)
85248acd9f2a
5297f5129756
9f9bde33b8d7
6e6bb25a0942
76c52e74f795
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Supprimer un conteneur qui est actif¶
On va relancer un nginx en arrière plan
on récupère bien le nom du conteneur
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
348f3d23b2d3 nginx "/docker-entrypoint.…" 28 seconds ago Up 28 seconds 80/tcp pensive_torvalds
Et si on supprime. On se prend une erreur
$ docker rm pensive_torvalds
Error response from daemon: cannot remove container "pensive_torvalds": container is running: stop the container before removing or force remove
Pour forcer la suppression on rajoute l'option -f
$ docker rm -f pensive_torvalds
pensive_torvalds
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Notes
Ce n'est pas la meilleur façon, il faut toujours essayer d'arrêter puis de supprimer