====== Memo pour Docker ====== paramètres communs aux objets: * list: pour lister * rm: pour supprimer un élément ce qui est arrété et non utilisé * prune: pour supprimer TOUT ce qui est arrété et non utilisé * inspect: pour les détails ===== Les différentes méthodes pour démarrer un contenaire ===== (docker run –help) Si l'image n'existe pas en local, docker le télécharge depusi le hub docker Toutes les images disponibles: [[https://hub.docker.com/|https://hub.docker.com/]] [[https://www.baeldung.com/ops/docker-attach-detach-container|https://www.baeldung.com/ops/docker-attach-detach-container]] ==== par défaut mode foreground ==== Affiche le retours console du contenaire, un ctrl+c quite ET stop le contenaire docker run image_docker ==== option -d ==== Mode détaché en background, pas de retours docker run -d image_docker Pour entrer dans le shell du contenaire, il faudra le lancer en mode interactif dans un pseudo TTY (voir plus loin). ==== option -it ==== Connecte le shell du contenaire dans le shell local, pour sortir SANS stopper le contenaire par ctrl+p suivi de ctrl+q docker run -it image_docker /bin/sh ===== Pour mapper un port local sur un port du contenaire ===== docker run -d -p 8080:80 image_docker ===== Pour lister les images en local ===== docker image list ===== Pour lister les contenaires instanciés (arrêtés ou en marche) ===== docker ps -a ===== Pour arreter (éteindre) un contenaire ===== il faut connaitre son ID ou name docker container list puis docker container stop [ID_contenair|Name_Contenaire] ou docker stop $(sudo docker ps -a -q) ===== Pour supprimer un contenaire ===== docker rm -f ID_Contenaire ou docker rm -f $(sudo docker ps -a -q) si le contenaire tourne on doit d'abord l'éteindre ou utiliser l'option " -f " ou pour tous les contenaires éteints docker container prune ===== Pour entrer dans le shell du contenaire en background (mode detach) ===== il faut connaitre le nom du contenaire : sudo docker container list puis docker exec -it nom_contenair sh [[https://docs.docker.com/reference/cli/docker/container/exec/|https://docs.docker.com/reference/cli/docker/container/exec/]] ===== Pour monter un volume local dans le contenaire ===== [[https://blog.microlinux.fr/formation-docker-10-volumes/|https://blog.microlinux.fr/formation-docker-10-volumes/]] docker run -d -p 8080:80 --volume volume_local:/point_de_montage_dans_contenaire:ro image_docker Si le volume est un chemin absolu vers un répertoire existant (~/volume_local ou /home/volume_local) , avec cette méthode on ne peut pas gérer les volumes avec "docker volume". Si le volume n'existe pas il est créé automatiquement (voir ci-après). docker run -d -p 8080:80 --name nom_contenaire --mount src=volume_local,dst=/point_de_montage_dans_contenaire:ro image_docker ===== Pour créer un volume. ===== Les volumes sont par défaut dans: sudo ls -l /var/lib/docker/volumes/ sudo docker volume create Test1Vol si on veut un stockage hors /var/lib/docker/volumes/ docker volume create --driver local --opt type=none --opt device=/chemin/vers/mon/dossier --opt o=bind nom_volume ===== Pour lister les volumes ===== docker volume list ===== Pour supprimer un volume ===== Meme si le contenaire qui utlisait le volume est supprimé, le volume reste dans docker. Pour le supprimer docker volume rm nom_volume ===== Divers ===== IP par conteneur: [[https://www.baeldung.com/ops/docker-assign-static-ip-container|https://www.baeldung.com/ops/docker-assign-static-ip-container]] [[https://docs.docker.com/network/network-tutorial-standalone/|https://docs.docker.com/network/network-tutorial-standalone/]] les volumes pour un conteneur: [[https://blog.microlinux.fr/formation-docker-10-volumes/|https://blog.microlinux.fr/formation-docker-10-volumes/]] à tester [[https://www.cheatsheet.fr/2024/04/07/heberger-plusieurs-sites-dans-des-containers-docker/|https://www.cheatsheet.fr/2024/04/07/heberger-plusieurs-sites-dans-des-containers-docker/]]