Aller au contenu

« Docker commandes » : différence entre les versions

De Marmits Wiki
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 142 : Ligne 142 :
== Divers ==
== Divers ==
=== Commandes de base ===
=== Commandes de base ===
 
*[[ Docker_commandes_de_base|Docker Commandes de base]]
* Liste les conteneurs actifs. Aussi accessible par la commande docker ps [-a]. L'option -a liste aussi l'ensemble des conteneurs inactifs
<syntaxhighlight lang="bash" copy>
docker container ls [-a]
</syntaxhighlight>
 
* Démarre une nouvelle instance d'un conteneur à partir d'une image donnée
<syntaxhighlight lang="bash" copy>
docker container run image_de_base
</syntaxhighlight>
 
* Crée un conteneur basé sur une image donnée sans le démarrer
<syntaxhighlight lang="bash" copy>
docker container create image_de_base
</syntaxhighlight>
 
* Stoppe un conteneur actif
<syntaxhighlight lang="bash" copy>
docker container stop nom_conteneur
</syntaxhighlight>
 
* Démarre un conteneur inactif
<syntaxhighlight lang="bash" copy>
docker container start nom_conteneur
</syntaxhighlight>
 
* Attache les entrées et sorties standards locales à un conteneur actif
<syntaxhighlight lang="bash" copy>
docker container attach nom_conteneur
</syntaxhighlight>
 
* Exécute une commande dans un conteneur actif
<syntaxhighlight lang="bash" copy>
docker container exec nom_conteneur commande
</syntaxhighlight>
 
* Supprime un conteneur inactif
<syntaxhighlight lang="bash" copy>
docker container rm nom_conteneur
</syntaxhighlight>
 
* Supprime tous les conteneurs inactifs
<syntaxhighlight lang="bash" copy>
docker container prune
</syntaxhighlight>
 
* Affiche les logs d'un conteneur actif
<syntaxhighlight lang="bash" copy>
docker container logs [-f] nom_conteneur
</syntaxhighlight>
 
* Affiche les statistiques d'un conteneur actif
<syntaxhighlight lang="bash" copy>
docker container stats nom_conteneur
</syntaxhighlight>
 
* Affiche les informations détaillées d'un conteneur actif
<syntaxhighlight lang="bash" copy>
docker container inspect nom_conteneur
</syntaxhighlight>


=== Commandes avec paramètres ===
=== Commandes avec paramètres ===

Dernière version du 4 juin 2026 à 09:33

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 .

source :