informatique:logiciels:docker
This is an old revision of the document!
Table of Contents
Docker
Ceci est un pense-bête en vrac. Il peut contenir des erreurs.
Installation
Documentations
Vidéos:
Généralités
Il faut être root pour utiliser docker.
# afficher l'arborescence de la conf d'un composant, par ex le réseau (sh conf) docker inspect bridge # afficher la conf d'un conteneur docker inspect pihole # n'afficher qu'un paramètre de sa conf : docker inspect -f "{{.State.Health.Status}}" pihole-dogen
B.-A.-BA
Vérification de la version :
docker version Client: Docker Engine - Community Version: 27.1.2 API version: 1.46 Go version: go1.21.13 Git commit: d01f264 Built: Mon Aug 12 11:51:13 2024 OS/Arch: linux/amd64 Context: default docker compose version Engine: Version: 27.1.2 API version: 1.46 (minimum version 1.24) Go version: go1.21.13 Git commit: f9522e5 Built: Mon Aug 12 11:51:13 2024 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.7.20 GitCommit: 8fc6bcff51318944179630522a095cc9dbf9f353 runc: Version: 1.1.13 GitCommit: v1.1.13-0-g58aa920 docker-init: Version: 0.19.0 GitCommit: de40ad0
Test de création d'un conteneur témoin
docker run hello-world
Conteneurs
Création d'un conteneur Alpine Linux (Linux minimaliste)
docker run -it alpine # -i interactif -t on rattache le terminal # lancer un shell dans le conteneur alpine docker exec -ti alpine sh
Action sur les conteneurs
# démarrer arrêter un conteneur docker start alpine docker stop alpine # suppr un conteneur docker rm (-f) <conteneur1> (-f pour forcer même s'il est en fonctionnement) # lister les conteneurs docker ps # (ou docker container ls) # pour lister aussi les conteneurs arrêtés docker ps -a
Volumes
docker volume ls docker volume create monvolume docker volume rm monvolume
Gestion des logs
# afficher les logs d'un conteneur: # -f/--follow ; -t/--timestamps ; -n/--tail docker container logs --follow <ID> docker logs -f -t --details <Nom_du_conteneur> # filtrer les logs sur un créneau horaire (ici affiche les logs du 11 mars) docker logs -t --since 2023-03-11 --until 2023-03-12 --details <conteneur> docker logs -t --since 1h30m --details <conteneur> # par def, les logs des conteneurs sont dans /var/lib/docker/containers/ # supprimer les logs d'un conteneur : : > $(docker inspect --format='{{.LogPath}}' <nom ou ID du conteneur>)
Images
# lister les images docker images (ou docker image ls) # créer image à partir d'un conteneur docker commit -m "hello image v1" <containerID> firstimage:v1.0 docker history <ID_image> (afficher l'historique des cmds passées dans l'image)
Build
#docker build mkdir -p mon_serveur_web && cd $_ echo "<html><body>Hello world!</body></html>" > index.html echo -e "FROM nginx\n\ COPY index.html /usr/share/nginx/html/index.html" > Dockerfile docker build -t mon_serveur_web # on le lance en bindant le port 8888 du host sur le 80 du conteneur docker run -p 8888:80 mon_serveur_web:latest -> http://localhost:8888
network
# lister les réseaux (loopback) créés dans docker docker network ls
Compose
docker compose: permet de créer et ordonnancer de multiples conteneurs pour monter un service (site web + BDD + etc) ; il utilise des fichiers yml pour définir le service
# https://docs.docker.com/compose/gettingstarted/ mkdir nextcloud && cd nextcloud docker-compose.yml <------ contient la description du service # création de la stack # run your services in the background with the -d flag (for "detached" mode) docker-compose up -d # afficher les logs docker-compose logs -f # arrêter le conteneur docker-compose down ! docker compose pull ?
Exemples
Lancer un pihole sur le serveur Windows ; depuis un shell WSL:
docker run -d \ --name=pihole-win \ --hostname pi.hole \ -p 80:80 \ -e WEBPASSWORD=MDP4cc3sInterfaceWeb \ -e DNSMASQ_LISTENING=local \ -e PIHOLE_DNS_=10.0.1.65 \ -e TZ=FR \ -v pihole_dnsmasq.d:/etc/dnsmasq.d \ -v pihole_pihole:/etc/pihole \ --restart=unless-stopped \ pihole/pihole:latest
MAJ le conteneur avec la dernière version de pihole:
# dl la dernière version de l'image docker pull pihole/pihole # arrêter le conteneur courant docker container stop pihole-win # supprimer le conteneur courant docker rm -f pihole-win ! lancer le nouveau conteneur docker run <ARGS> pihole/pihole
Divers
Outils liés à docker:
informatique/logiciels/docker.1724066631.txt.gz · Last modified: 2024/08/19 11:23 by pteu