technique:docker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
technique:docker [2020/10/27 03:45] francoisatechnique:docker [2024/03/06 15:52] francoisa
Ligne 1: Ligne 1:
-====== Virtualisation avec Docker ======+====== Conteneurisation avec Docker ======
  
 Docker est un système de virtualisation proche du sysème hote (s'il est similaire). Il permet de partager des ressources et de moins solliciter le système. Docker est un système de virtualisation proche du sysème hote (s'il est similaire). Il permet de partager des ressources et de moins solliciter le système.
Ligne 5: Ligne 5:
 Quelques sources : Quelques sources :
  
-  * https://openclassrooms.com/fr/courses/2035766-optimisez-votre-deploiement-en-creant-des-conteneurs-avec-docker+  * [[https://openclassrooms.com/fr/courses/2035766-optimisez-votre-deploiement-en-creant-des-conteneurs-avec-docker|https://openclassrooms.com/fr/courses/2035766-optimisez-votre-deploiement-en-creant-des-conteneurs-avec-docker]]
   * [[https://guillaumebriday.fr/comprendre-et-mettre-en-place-docker|https://guillaumebriday.fr/comprendre-et-mettre-en-place-docker]] (réseau)   * [[https://guillaumebriday.fr/comprendre-et-mettre-en-place-docker|https://guillaumebriday.fr/comprendre-et-mettre-en-place-docker]] (réseau)
   * Un serveur web docker : [[https://techexpert.tips/fr/apache-fr/apache-installation-docker|https://techexpert.tips/fr/apache-fr/apache-installation-docker]]   * Un serveur web docker : [[https://techexpert.tips/fr/apache-fr/apache-installation-docker|https://techexpert.tips/fr/apache-fr/apache-installation-docker]]
   * [[https://xataz.developpez.com/tutoriels/utilisation-docker/|https://xataz.developpez.com/tutoriels/utilisation-docker/]]   * [[https://xataz.developpez.com/tutoriels/utilisation-docker/|https://xataz.developpez.com/tutoriels/utilisation-docker/]]
   * [[https://devopssec.fr/article/cours-complet-apprendre-technologie-docker|https://devopssec.fr/article/cours-complet-apprendre-technologie-docker]]   * [[https://devopssec.fr/article/cours-complet-apprendre-technologie-docker|https://devopssec.fr/article/cours-complet-apprendre-technologie-docker]]
 +  * Docker dans LXC : [[https://du.nkel.dev/blog/2021-03-25_proxmox_docker/|https://du.nkel.dev/blog/2021-03-25_proxmox_docker/]]
 +  * chaine Xavki sur docker (+docker-compose pas loin) [[https://yewtu.be/playlist?list=PLn6POgpklwWq0iz59-px2z-qjDdZKEvWd|https://yewtu.be/playlist?list=PLn6POgpklwWq0iz59-px2z-qjDdZKEvWd]]
 +  * serie d'articles : [[https://blog.microlinux.fr/formation-docker/|https://blog.microlinux.fr/formation-docker/]]
 +
 +===== Schéma conteneur et virtualisation =====
 +
 +{{.:image-29-1024x548.png?400}}
 +
 +=====   =====
  
 ===== Installation ===== ===== Installation =====
Ligne 18: Ligne 27:
 <code> <code>
  
-sudo apt install docker.io+sudo apt install docker docker-compose # si on veut utiliser des fichiers docker-compose.yaml
  
 </code> </code>
 +
 +Mais dans doute le paquet docker-ce dispo dans les repos est-il plus pertinent ?
  
 Mettre l'utilisateur courant dans le groupe docker : Mettre l'utilisateur courant dans le groupe docker :
Ligne 28: Ligne 39:
  
 </code> </code>
 +
 +Install de docker via ansible dans le role setup_machine : [[https://gitlab.cemea.org/cemeasi/ansible-cemea/-/blob/master/roles/setup_machine/tasks/main.yml?ref_type=heads#L73-116|https://gitlab.cemea.org/cemeasi/ansible-cemea/-/blob/master/roles/setup_machine/tasks/main.yml?ref_type=heads#L73-116]]
  
 ===== Principe de fonctionnement ===== ===== Principe de fonctionnement =====
Ligne 160: Ligne 173:
   * **USER**  : Désigne quel est l'utilisateur qui lancera les prochaines instructions   * **USER**  : Désigne quel est l'utilisateur qui lancera les prochaines instructions
 RUN , CMD ou ENTRYPOINT (par défaut c'est l'utilisateur root). RUN , CMD ou ENTRYPOINT (par défaut c'est l'utilisateur root).
 +
 +Un outil pour explorer les couches d'une image Docker : [[https://github.com/wagoodman/dive|https://github.com/wagoodman/dive]]
  
 ===== Les volumes ===== ===== Les volumes =====
Ligne 206: Ligne 221:
  
 ''docker network rm test''  : effacer un réseau ''docker network rm test''  : effacer un réseau
 +
 +===== log via journald =====
 +
 +Actifs sur toutes nos machines. Pour que les logs docker arrivent dans journald, ce qui permet une persistence, ainsi que tous les outils pratiques de filtrage de journald, il faut configurer le logging-driver dans ''/etc/docker/daemon.json''  :
 +<code>
 +
 +{
 +  "log-driver": "journald"
 +}
 +
 +</code>
 +
 +Ensuite, si on veut filtrer, plusieurs options :
 +
 +  * sur le nom du conteneur : ''journalctl CONTAINER_NAME=scribe-scribe-1''
 +  * sur l'ID court de conteneur : ''journalctl CONTAINER_ID=f541054ab4e7''
 +
 +Plus d'infos ici : [[https://docs.docker.com/config/containers/logging/journald/|https://docs.docker.com/config/containers/logging/journald/]]
 +
 +On peut bien sur combiner avec d'autres filtres :
 +<code>
 +
 +journalctl CONTAINER_NAME=scribe-scribe-1 -b -1 # Pour le dernier boot uniquement
 +journalctl CONTAINER_NAME=scribe-scribe-1 --since yesterday # Pour les logs depuis hier
 +journalctl CONTAINER_NAME=scribe-scribe-1 CONTAINER_NAME=scribe-dmp-server-1 #Pour avoir les logs de plusieurs containers d'un coup
 +
 +</code>
 +=== Cas particulier sous PVE ===
 +
 +Penser à activer le keyctl=1 pour docker
 +
 +En cas de disque saturé, docker peut renvoyer des trucs bizarres sur des fichiers qu'il croit encore existants :
 +
 +<code>
 +systemctl stop docker && rm -Rf /var/lib/docker/image/vfs && rm -Rf /var/lib/docker/vfs && systemctl start docker
 +
 +</code>
 +
 +Et patienter avant de relancer un build...
 +
 +===== Purge =====
 +
 +Les usages mutliples de docker génèrent des fichiers liés au volume, au réseau au cache. Ce qui représente à la longue un espace conséquent dans /var/lib/docker (20 Go chez moi).
 +
 +Un nettoyage complet peut s'effectuer avec :
 +
 +<code>
 +docker system prune -a # suppresion des images, conteneur, réseau, volumes, cache...
 +
 +</code>
 +
 +Et hop : réduction à 40 Mo !
  
 ====== Docker-compose ====== ====== Docker-compose ======
  • technique/docker.txt
  • Dernière modification : 2024/04/02 15:08
  • de 127.0.0.1