Table des matières

Memo pour Docker

paramètres communs aux objets:

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://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/

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/