informatique:logiciels:docker
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
informatique:logiciels:docker [2024/08/19 11:23] – created pteu | informatique:logiciels:docker [2024/09/20 15:29] (current) – pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
======Docker====== | ======Docker====== | ||
- | Ceci est un pense-bête en vrac. Il peut contenir des erreurs. | + | {{ : |
+ | |||
+ | Docker est un outil permettant de faire tourner une application et ses dépendances dans un conteneur isolé, en s' | ||
+ | |||
+ | //Ceci est un pense-bête en vrac. Il peut contenir des erreurs.// | ||
=====Installation===== | =====Installation===== | ||
Line 9: | Line 13: | ||
* [[https:// | * [[https:// | ||
- | =====Documentations===== | ||
- | |||
- | * https:// | ||
- | * https:// | ||
- | |||
- | Vidéos: | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
=====Généralités===== | =====Généralités===== | ||
- | Il faut être root pour utiliser docker. | + | Il faut être root pour utiliser docker |
- | <code bash> | + | |
- | # afficher | + | |
- | docker inspect bridge | + | |
- | # afficher la conf d'un conteneur | + | |
- | docker | + | |
- | # n' | + | |
- | docker inspect -f " | + | |
- | </code> | + | |
- | + | ||
- | =====B.-A.-BA===== | + | |
Vérification de la version : | Vérification de la version : | ||
Line 72: | Line 56: | ||
=====Conteneurs===== | =====Conteneurs===== | ||
+ | |||
+ | Un conteneur est l' | ||
Création d'un conteneur Alpine Linux (Linux minimaliste) | Création d'un conteneur Alpine Linux (Linux minimaliste) | ||
Line 84: | Line 70: | ||
Action sur les conteneurs | Action sur les conteneurs | ||
<code bash> | <code bash> | ||
+ | # lister les conteneurs | ||
+ | docker ps | ||
+ | docker container ls | ||
+ | # pour lister aussi les conteneurs arrêtés | ||
+ | docker ps -a | ||
+ | CONTAINER ID | ||
+ | f8b7c15f443f | ||
+ | |||
# démarrer arrêter un conteneur | # démarrer arrêter un conteneur | ||
docker start alpine | docker start alpine | ||
docker stop alpine | docker stop alpine | ||
- | # suppr un conteneur | + | # supprimer |
- | docker rm (-f) < | + | docker rm (-f) < |
- | # lister | + | # supprimer |
- | docker ps # (ou docker container | + | docker container |
- | + | ||
- | # pour lister aussi les conteneurs arrêtés | + | |
- | docker ps -a | + | |
</ | </ | ||
- | =====Volumes===== | ||
- | <code bash> | + | =====Images===== |
- | docker volume ls | + | |
- | docker volume create monvolume | + | |
- | docker volume rm monvolume | + | |
- | </ | + | |
- | ===== Gestion | + | Ce sont des " |
<code bash> | <code bash> | ||
- | # afficher | + | # lister |
- | # -f/--follow ; -t/ | + | docker |
- | docker | + | #(ou "docker |
- | docker logs -f -t --details < | + | |
- | # filtrer les logs sur un créneau horaire | + | |
- | docker | + | |
- | docker logs -t --since 1h30m --details < | + | |
- | # par def, les logs des conteneurs sont dans / | + | |
- | # supprimer les logs d'un conteneur : | + | |
- | : > $(docker inspect --format=' | + | |
- | </ | + | |
- | =====Images===== | + | # télécharger une image |
+ | docker pull pihole | ||
+ | |||
+ | # supprimer les images inutilisées | ||
+ | docker image prune | ||
- | <code bash> | ||
- | # lister les images | ||
- | docker images | ||
- | (ou docker image ls) | ||
# créer image à partir d'un conteneur | # créer image à partir d'un conteneur | ||
docker commit -m "hello image v1" < | docker commit -m "hello image v1" < | ||
- | docker history < | + | |
+ | # afficher l' | ||
+ | docker history < | ||
</ | </ | ||
+ | |||
+ | |||
+ | =====Registres (d' | ||
+ | |||
+ | Les " | ||
+ | |||
=====Build===== | =====Build===== | ||
Line 146: | Line 132: | ||
</ | </ | ||
- | =====network===== | + | =====Network===== |
+ | |||
+ | Les réseaux docker sont des bridges créés sur le système pour isoler les conteneurs, l' | ||
<code bash> | <code bash> | ||
# lister les réseaux (loopback) créés dans docker | # lister les réseaux (loopback) créés dans docker | ||
docker network ls | docker network ls | ||
+ | </ | ||
+ | |||
+ | Dans un docker compose, créer un réseau bridgé dont on maitrise l' | ||
+ | <code yaml> | ||
+ | networks: | ||
+ | br-1: | ||
+ | name: pont1 | ||
+ | driver: bridge | ||
+ | ipam: | ||
+ | config: | ||
+ | - subnet: 172.17.17.0/ | ||
+ | gateway: 172.17.17.254 | ||
+ | [..] | ||
+ | services: | ||
+ | myalpine: | ||
+ | image: alpine | ||
+ | container_name: | ||
+ | command: sh | ||
+ | network: | ||
+ | - br-1 | ||
+ | name: pont1 | ||
+ | #external: true # uniquement si le réseau a déjà été créé en dehors compose | ||
+ | ipv4_address: | ||
+ | </ | ||
+ | |||
+ | Pour faire communiquer (basiquement) 2 réseaux docker il faut manipuler l' | ||
+ | <code bash> | ||
+ | iptables -I DOCKER-USER -i br-1 -o br-2 -j ACCEPT | ||
+ | iptables -I DOCKER-USER -i br-2 -o br-2 -j ACCEPT | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====Volumes===== | ||
+ | |||
+ | Permet de faire persister les données entre plusieurs lancements de conteneurs, en montant un volume sur le système de fichier de la machine hôte. | ||
+ | |||
+ | <code bash> | ||
+ | docker volume ls (-a) | ||
+ | docker volume create < | ||
+ | docker volume rm < | ||
+ | docker volume prune | ||
</ | </ | ||
=====Compose===== | =====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 | + | docker compose: permet de créer et ordonnancer de multiples conteneurs pour monter un "service" |
<code bash> | <code bash> | ||
+ | docker compose version | ||
+ | |||
+ | docker compose build | ||
+ | |||
# https:// | # https:// | ||
mkdir nextcloud && cd nextcloud | mkdir nextcloud && cd nextcloud | ||
Line 166: | Line 199: | ||
# afficher les logs | # afficher les logs | ||
docker-compose logs -f | docker-compose logs -f | ||
- | # arrêter | + | # arrêter |
- | docker-compose down | + | docker-compose down (-v) |
! | ! | ||
docker compose pull ? | docker compose pull ? | ||
+ | </ | ||
+ | |||
+ | Mettre à jour un conteneur existant (exemple avec technitium/ | ||
+ | <code bash> | ||
+ | docker compose down | ||
+ | docker image rm technitium/ | ||
+ | docker compose up -d | ||
+ | </ | ||
+ | ===== Gestion des logs===== | ||
+ | |||
+ | <code bash> | ||
+ | # afficher les logs d'un conteneur: | ||
+ | # -f/--follow ; -t/ | ||
+ | docker container logs --follow <ID> | ||
+ | docker logs -f -t --details < | ||
+ | # 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 < | ||
+ | docker logs -t --since 1h30m --details < | ||
+ | # par def, les logs des conteneurs sont dans / | ||
+ | # supprimer les logs d'un conteneur : | ||
+ | : > $(docker inspect --format=' | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====Divers===== | ||
+ | |||
+ | <code bash> | ||
+ | # afficher l' | ||
+ | docker inspect bridge | ||
+ | # afficher la conf d'un conteneur | ||
+ | docker inspect pihole | ||
+ | # n' | ||
+ | docker inspect -f " | ||
+ | |||
+ | |||
+ | # effacer les données inutilisées par docker (comme les vieilles images par ex) | ||
+ | docker system prune | ||
</ | </ | ||
Line 203: | Line 273: | ||
</ | </ | ||
- | =====Divers===== | + | =====Documentations===== |
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | Vidéos: | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
Outils liés à docker: | Outils liés à docker: |
informatique/logiciels/docker.1724066631.txt.gz · Last modified: 2024/08/19 11:23 by pteu