Outils pour utilisateurs

Outils du site


informatique:docker:compose

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édentesRévision précédente
Prochaine révision
Révision précédente
informatique:docker:compose [2019/01/16 11:59] – [Objectif] florianinformatique:docker:compose [2025/01/14 11:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 3: Ligne 3:
 ====== Docker Compose ====== ====== Docker Compose ======
  
-===== \\ +===== Objectif =====
-Objectif =====+
  
-L'objectif de compose et de gérer un ensemble de dockers liés/ou pas entre eux par le biais d'un seul fichier de conf.\\ +Avec compose on peut gérer un ensemble de dockers liés/ou pas entre eux par le biais de fichiers de conf.\\ 
-J'en ai besoin pour être plus confortable dans la gestion des mes différents dockers web avec [[:informatique:docker:traefik|]].+J'en ai besoin pour :
  
 +  * Être plus confortable pour gérer mon lot de dockers web avec Traefik. Voir [[:informatique:docker:traefik|]].
 +  * Centraliser (sous git) des fichiers de confs pour la création de mes dockers. Aujourd'hui c'est éparpillé dans le wiki sous forme d'exemples, c'est pas pratique.
 +
 +C'est promis, fini les dockers runs à rallonge {{http://doku.floriantales.fr/lib/plugins/ckgedit/ckeditor/plugins/smiley/images/thumbs_up.png?nolink&23x23|yes}}
  
 ===== Installation ===== ===== Installation =====
  
-On prend la [[https://github.com/docker/compose/releases|dernière release]] de compose et on le place dans son bin : +On prend la [[https://github.com/docker/compose/releases|dernière release]] de compose et on la place dans notre bin :
 <code> <code>
 +
 sudo -s sudo -s
 curl -L https://github.com/docker/compose/releases/download/1.24.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose curl -L https://github.com/docker/compose/releases/download/1.24.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
 chmod +x /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
 +
 </code> </code>
  
Ligne 25: Ligne 29:
  
 Créer un fichier de configuration ''docker-compose.yml'', exemple : Créer un fichier de configuration ''docker-compose.yml'', exemple :
-<code>+ 
 +docker-compose.yml 
 + 
 +<code yaml>
 version: '3' version: '3'
 services: services:
Ligne 33: Ligne 40:
   Nginx_2:   Nginx_2:
     image: richarvey/nginx-php-fpm     image: richarvey/nginx-php-fpm
 +
 </code> </code>
  
Ligne 39: Ligne 47:
 <code> <code>
 docker-compose up -d docker-compose up -d
 +
 </code> </code>
  
Ligne 44: Ligne 53:
  
 ==== Plusieurs fichiers de conf ==== ==== Plusieurs fichiers de conf ====
 +
 Pour gérer plusieurs composes différents, on peut jouer avec une arborescence et l'option -f de compose : Pour gérer plusieurs composes différents, on peut jouer avec une arborescence et l'option -f de compose :
  
Ligne 50: Ligne 60:
 | |
 |----> service-a (git submodule) |----> service-a (git submodule)
-         |+  |
 |          -----> docker-compose.yml |          -----> docker-compose.yml
 | |
 |----> service-b (git submodule) |----> service-b (git submodule)
-         |+  |
 |          -----> docker-compose.yml |          -----> docker-compose.yml
 | |
  -----> docker-compose.yml  -----> docker-compose.yml
 +
 </code> </code>
  
-Exemple pour vérifier si compose entend bien plusieurs fichiers avec la directive ''config'' qui listera les configurations :+Exemple pour vérifier si compose entend bien plusieurs fichiers avec la directive ''config''  qui listera les configurations :
 <code> <code>
 +
 docker-compose -f service-a/docker-compose.yml -f service-b/docker-compose.yml config docker-compose -f service-a/docker-compose.yml -f service-b/docker-compose.yml config
 +
 </code> </code>
  
 La documentation associée : [[https://docs.docker.com/compose/extends/#understanding-multiple-compose-files|docs.docker.com/compose/multiple-compose-files]] La documentation associée : [[https://docs.docker.com/compose/extends/#understanding-multiple-compose-files|docs.docker.com/compose/multiple-compose-files]]
 +
 +===== Exemples de fichier de conf =====
 +
 +==== Transposition simple ====
 +
 +Transposer ce docker run en fichier de conf :
 +<code>
 +
 +docker run -d --restart=always --name="Nginx_Dokuwiki" \
 +-p 8081:80 \
 +-e "PUID=`id -u $USER`" -e "PGID=`id -g $USER`" \
 +-v /mnt/Raid/Documents_de_Florian/Documents_NAS/Dockers/Docker_Data/Nginx_Dokuwiki/:/var/www/html \
 +richarvey/nginx-php-fpm
 +
 +</code>
 +
 +Seul petit bémol, on ne peut pas faire interpréter du code dans le yml. Donc ''id -u $USER''  ne fonctionnera pas. \\ Sinon cela donne :
 +
 +docker-compose.yml
 +
 +<code yaml>
 +version: '3'
 +services:
 +  Nginx_Dokuwiki:
 +    image: richarvey/nginx-php-fpm
 +    restart: always
 +    ports:
 +      - "8081:80"
 +    environment:
 +      - PUID=1000
 +      - PGID=1000
 +    volumes:
 +      - /mnt/Raid/Documents_de_Florian/Documents_NAS/Dockers/Docker_Data/Nginx_Dokuwiki/:/var/www/html​​​​​
 +
 +</code>
 +
 +==== Transposition avec construction Dockerfile ====
 +
 +Remplacer une construction à partir d'un Dockerfile puis le lancement :
 +
 +<code>
 +docker build --no-cache -t "ma_super_image" .
 +docker run -d --restart=always --name="mon_super_docker" ma_super_image
 +
 +</code>
 +
 +Par :
 +
 +docker-compose.yml
 +
 +<code yaml>
 +version: "3"
 +services:
 +  mon_super_service:
 +    build:
 +      context: .
 +      dockerfile: Dockerfile
 +    image: ma_super_image
 +    container_name: mon_super_docker
 +    restart: always
 +
 +</code>
  
 ===== Ressources ===== ===== Ressources =====
  
-La documentation officielle de compose : [[https://docs.docker.com/compose/|docs.docker.com/compose/]]+==== Documentation Web ==== 
 + 
 +La documentation officielle de compose : [[https://docs.docker.com/compose/|docs.docker.com/compose/]] \\ 
 +Intérêt : [[http://blog.ippon.fr/2015/03/26/orchestration-de-containers-docker-docker-compose-et-crane/|blog.ippon.fr/orchestration-de-containers-docker-docker-compose-et-crane]] \\ 
 +Installation de l'utilitaire (un curl) : [[https://docs.docker.com/compose/install/#install-compose|docs.docker.cominstall-compose]] 
 + 
 +==== Github privé ==== 
 + 
 +Là où je positionne mes configurations compose : [[https://github.com/floriantales/Docker_Composes|github.com/floriantales/Docker_Composes]]
  
  
informatique/docker/compose.1547639998.txt.gz · Dernière modification : 2025/01/14 11:19 (modification externe)