aurelien@aschnoebelen.fr:~/blog $

aurelien@aschnoebelen.fr: ~ $ cat ./articles/aide-memoire-docker/

· 2 min de lecture · #docker #docker-compose · dir: Sysadmin

Aide-mémoire Docker

Mémo récapitulant les commandes usuelles de Docker pour la gestion des images et des conteneurs.

Petit mémo pour lister quelques commandes usuelles de Docker, à retenir.

Ce mémo va être réécrit prochainement

1. Récupérer une image sur le Hub Docker

docker pull <image>:<version>

Exemple :

docker pull debian:latest

2. Démarrer un conteneur

docker run -it -d --rm -v /absolute/local/path/:/absolute/docker/container/path --name <name> <image-name> <commande>
  • run : créer un conteneur à partir d’une image
  • -it (-i -t) : terminal interactif
  • -d : lancement en arrière-plan
  • --rm : supprimer le conteneur à la fin de l’exécution
  • -v (--volume) : monter un répertoire local dans le conteneur
  • --name : permet de donner un nom au conteneur

On peut aussi utiliser une option pour binder un port pour pouvoir accéder au conteneur depuis le réseau (pour un serveur web par exemple). Exemple avec Nginx :

docker run -it -d --rm -p <local-ip-address>:<local-port>:<container-port>/tcp --name nginx nginx:latest
  • -p : publish pour binder un port

3. Lancer un shell dans le conteneur

docker exec -it <container-name> /bin/sh

Si présent dans l’image, préférez utiliser /bin/bash à la place de /bin/sh

4. Créer une image depuis un Dockerfile

docker build -t <my-repo-name>/<image-name>:tag <path-to-Dockerfile>
  • -t : pour indiquer le nom de l’image

Exemple :

docker build -t aruileen/my-test:latest ./

5. Bonus : Supprimer la liste des images en une commande

Lister les images :

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
a/curl       3         da6649d259c3   12 minutes ago   12.3MB
a/curl       2         fe425784a59b   14 minutes ago   14.2MB
a/curl       1         cd76497d303b   35 minutes ago   10.1MB
alpine       latest    c1aabb73d233   3 weeks ago      7.33MB

Contrôler que la commande liste bien les images à supprimer (ici nous souhaitons supprimer toutes les images sauf Alpine) :

$ docker images | awk 'NR>1 && NR<5{print $3}'
da6649d259c3
fe425784a59b
cd76497d303b

Puis lancer la commande complète pour supprimer les images listées :

$ docker images | awk 'NR>1 && NR<5{print $3}' | xargs docker rmi
Untagged: a/curl:3
Deleted: sha256:da6649d259c3be7f53d540cae768af71141d9df0c33a44c265a27402fbde06b5
Untagged: a/curl:2
Deleted: sha256:fe425784a59bf8094d37720788a4474216360f02fde61bd7eb2bac0930ac8028
Untagged: a/curl:1
Deleted: sha256:cd76497d303b71a322470dee04b731c9638f9d6785bc15f94c8b22a7c0b638ce

Vous pouvez aussi utiliser l’outil de Docker pour supprimer les images inutiliser :

docker image prune -a