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