Aller au contenu

Docker : commandes générales

Commandes transversales, qui ne dépendent ni d’une image, ni d’un conteneur en particulier. Docker n’est pas encore installé ? Voir Installer Docker sur Ubuntu. Les exemples utilisent des noms génériques à adapter.

Docker utilise la forme docker <objet> <action>. Les anciennes formes courtes (docker ps, docker images) existent toujours.

Forme complète Forme courte
docker container ls docker ps
docker image ls docker images
docker container run docker run
docker image pull docker pull
Fenêtre de terminal
docker --help # liste des commandes
docker run --help # aide d'une commande
docker version # versions du client et du serveur
docker info # configuration du moteur (pilote de stockage, cgroup, nombre d'objets)
docker info -f '{{ .DriverStatus }}' # extraire une valeur précise
Fenêtre de terminal
docker login # Docker Hub
docker login registre.example.com # autre registre
docker logout registre.example.com

Les identifiants sont enregistrés dans ~/.docker/config.json. Pour un usage automatisé, préférer un jeton d’accès à un mot de passe.

La plupart des commandes de liste acceptent --filter (sélection), --format (modèle Go) et -q (identifiants seuls).

Fenêtre de terminal
docker ps --filter status=exited # conteneurs arrêtés
docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'
docker ps -aq # identifiants de tous les conteneurs
docker inspect --format '{{ .State.Status }}' web # un champ de l'objet
docker inspect web | less # objet complet (JSON)
Fenêtre de terminal
docker events # flux des événements (création, arrêt, etc.) en direct
docker stats # consommation CPU/mémoire de tous les conteneurs
docker system df # espace disque utilisé (images, conteneurs, volumes, cache)
docker system df -v # détail par objet
Commande Supprime
docker system prune conteneurs arrêtés, réseaux inutilisés, images « dangling », cache de build
docker system prune -a idem, plus toutes les images non utilisées par un conteneur
docker system prune -a --volumes idem, plus les volumes non utilisés

Les nettoyages ciblés (docker container prune, docker image prune, docker volume prune, docker network prune) sont décrits dans les pages de chaque objet.

Un contexte permet de piloter un autre moteur Docker, par exemple via SSH, sans changer de machine.

Fenêtre de terminal
docker context ls
docker context create serveur --docker "host=ssh://utilisateur@exemple.com"
docker context use serveur # les commandes suivantes visent le moteur distant
docker context use default # retour au moteur local