Table des matières
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/
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/
Pour monter un volume local dans le contenaire
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://docs.docker.com/network/network-tutorial-standalone/
les volumes pour un conteneur:
https://blog.microlinux.fr/formation-docker-10-volumes/
à tester
https://www.cheatsheet.fr/2024/04/07/heberger-plusieurs-sites-dans-des-containers-docker/