Commandes pratiques pour Docker

Cette page reprend quelques commandes Docker plutôt usuelles qui ne se trouvent pas directement dans la documentation officielle.

Quelques commandes un peu plus élaborée

Supprimer les images

Supprimer toutes les images non utilisées :

docker rmi $(docker images -q)

Supprimer toutes les images sans tag :

docker rmi $(docker images | grep "<none>" | awk '{print $3}')

Démarrer un conteneur avec cette image, en mode interactif

docker run -ti hasalex/img bash

L’option -t permet de détacher le conteneur avec PQ, sans l’arrêter. On pourra le rattacher ensuite avec docker attach.

Arrêter tous les conteneurs

docker stop $(docker ps -q)

Supprimer tous les conteneurs

En réalité, ça ne supprime que ceux qui sont arrêtés.

docker rm $(docker ps -a -q)

Cette commande peut être combinée avec celle d’arrêt pour arrêter et supprimer tous les conteneurs :

docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)

Adresse IP d’un conteneur

Pour avoir l’adresse IP du conteneur 000000 :

docker inspect --format '{{ .NetworkSettings.IPAddress }}' 000000

Ça peut se coupler avec un kill pour envoyer un signal au process :

kill -INT $(docker inspect --format '{{ .NetworkSettings.IPAddress }}' 000000)

Ceci dit, ça peut être fait plus simplement :

docker kill --signal=INT 000000

PID du conteneur

Pour avoir l’ID du process dans le host :

docker inspect --format '{{.State.Pid}}' 000000

Docker Hub

docker login

Envoyer une image sur le hub :

docker push hasalex/img