Bannière
visitor@aschnoebelen.fr:~/2023/07/11/aide-memoire-docker$ login_

Aide mémoire Docker

  Le 11 juillet 2023     Aurélien Schnoebelen     #docker#docker-compose  

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 container

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

On peut aussi utiliser une option pour binder un port pour pouvoir accéder au container 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 container

docker exec -it <container-name> /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 (bon, toutes ont la même ID mais c’est pour l’exemple) :

$ 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