Docker commandes
Restart Servive Docker
sudo systemctl restart docker
Inspect Container
docker inspect NOM_DU_CONTAINER | grep -E '(Image|Volumes|Network|"Path"|Status|tmp|HostPort|HostIp|IPAddress|Type|Source|Destination|com.docker.compose.project.working_dir)'
Liste images
docker images
Taille image
docker image inspect mon-image:latest --format='{{.Size}}' | numfmt --to=iec
statistiques globales
Montre l'espace utilisé par toutes les images, conteneurs et volumes.
docker system df
Processus
- Vérifier les processus détaillés
docker exec -it CONTAINER_NAME ps aux
Docker natif
Pour lancer un conteneur Docker sans démarrer Docker Desktop sur Ubuntu, vous devez utiliser le démon Docker directement via la ligne de commande. - Démarrez le service Docker natif
sudo systemctl start docker
- Vérifiez que le démon Docker fonctionne
sudo systemctl status docker
- Désactivez Docker Desktop au démarrage
systemctl --user disable docker-desktop
- Forcer Docker CLI à utiliser le socket natif
Modifiez la variable d’environnement DOCKER_HOST pour pointer vers le socket système :
(Pour que cela persiste après un redémarrage, ajoutez cette ligne dans ~/.bashrc ou ~/.zshrc.)
export DOCKER_HOST=unix:///var/run/docker.sock
- Désactiver Docker Desktop (si vous ne l’utilisez plus)
systemctl --user stop docker-desktop
systemctl --user disable docker-desktop
Volumes orphelins
Lister les volumes inutilisés
docker volume ls -qf dangling=true
Les supprimer
docker volume rm $(docker volume ls -qf dangling=true)
Mettre à jour un container 🔥
| Besoin | Commande recommandée |
|---|---|
| Rebuild simple | docker compose up -d --build
|
| Rebuild sans cache | docker compose build --no-cache && docker compose up -d
|
| Recréer containers proprement | docker compose up -d --force-recreate
|
| Tout supprimer puis repartir propre | docker compose down && docker compose up -d --build
|
Mettre à jour le FROM
|
docker compose build --pull
|
Pratiques
Images
Afficher ID + nom + tag
docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}"
Trier uniquement les images uniques (comme -q) mais avec noms
docker images --format "{{.ID}} {{.Repository}}:{{.Tag}}" | sort -u
Scripts
Docker stop
Stop et supprime tous les conteneurs
#!/bin/bash
# Arrêter tous les conteneurs en cours d'exécution
docker stop $(docker ps -q)
# Supprimer tous les conteneurs
docker rm $(docker ps -a -q)
docker system prune -f
echo "Tous les conteneurs ont été supprimés."
Docker clean
Stop tous les containers, supprime les images, supprime les volumes
#!/bin/bash
# Arrêter tous les conteneurs en cours d'exécution
docker stop $(docker ps -q)
# Supprimer tous les conteneurs
docker rm $(docker ps -a -q)
# Supprimer toutes les images
docker rmi $(docker images -q)
# Supprimer tous les volumes
docker volume rm $(docker volume ls -q)
echo "Tous les conteneurs, images et volumes Docker ont été supprimés."
docker system prune -f
Divers
Commandes de base
Commandes avec paramètres
#la commande pour my-mariadb va créer un répertoire par défaut (on ne peut pas le spécifier nous même)
docker run --name my-mariadb --detach --env MYSQL_ROOT_PASSWORD=root --network db-network -v /var/lib/mysql mariadb
docker run --network db-network --detach --publish 7080:8080 adminer
#permet de créer l'image de contacts_nginx_prod
docker build --target contacts_nginx_prod -t $USER/demo-contacts-web:1.0.0 .