serveurs:installation: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
serveurs:installation:docker [2023/10/05 20:39] – [Création d'un réseau local Docker] jpmilcentserveurs:installation:docker [2024/12/19 19:30] (Version actuelle) – [Déplacer le dossier contenant les données de Docker] jpmilcent
Ligne 54: Ligne 54:
 </code> </code>
   * Créer le dossier de destination des données de Docker : ''sudo mkdir /data/docker''   * Créer le dossier de destination des données de Docker : ''sudo mkdir /data/docker''
-  * Copier les données dans le nouveau dossier : ''rsync -avxP /var/lib/docker/ /data/docker''+  * Copier les données dans le nouveau dossier : ''rsync -avxPS /var/lib/docker/ /data/docker''
     * Vérifier que les tailles des 2 dossiers correspondent : ''du -hs /var/lib/docker/; du -hs /data/docker''     * Vérifier que les tailles des 2 dossiers correspondent : ''du -hs /var/lib/docker/; du -hs /data/docker''
   * Renommer l'ancien dossier : ''mv /var/lib/docker /var/lib/docker.old''   * Renommer l'ancien dossier : ''mv /var/lib/docker /var/lib/docker.old''
   * Redémarrer le service Docker : ''systemctl start docker''   * Redémarrer le service Docker : ''systemctl start docker''
     * Vérifier le statut : ''systemctl status docker''     * Vérifier le statut : ''systemctl status docker''
-  * Accéder aux interfaces web des outils utilisant Docker, si Portainer est installé vérifier le paramètre //Root directory// de l'hôte.+  * Vérifier le nouvel emplacement : 
 +    * ''docker info | grep 'Docker Root Dir' '' 
 +    * Accéder aux interfaces web des outils utilisant Docker, si Portainer est installé vérifier le paramètre //Root directory// de l'hôte. 
 +  * Vérifier que les containers ont démarrés et fonctionnent comme prévu : ''docker ps''
   * Si tout est ok, supprimer l'ancien dossier : ''rm -rf /var/lib/docker.old''   * Si tout est ok, supprimer l'ancien dossier : ''rm -rf /var/lib/docker.old''
 ===== Installer Docker Compose ===== ===== Installer Docker Compose =====
Ligne 67: Ligne 70:
   * NOTES : supprimer l'ancienne version v1 télécharger manuellement : ''rm -f /usr/local/bin/docker-compose ; rm -f /etc/bash_completion.d/docker-compose''   * NOTES : supprimer l'ancienne version v1 télécharger manuellement : ''rm -f /usr/local/bin/docker-compose ; rm -f /etc/bash_completion.d/docker-compose''
  
 +===== Activer IPv6 pour Docker =====
 +  * Éditer le fichier ///etc/docker/daemon.json// : ''vi /etc/docker/daemon.json''
 +  * Ajouter les paramètres suivant : <code javascript>
 +{
 +    "ipv6": true,
 +    "fixed-cidr-v6": "c01d:c01a:cafe::/64",
 +    "experimental": true,
 +    "ip6tables": true
 +}
 +</code>
 +  * Redémarrer Docker : ''systemctl restart docker''
 +  * Vérifier la prise en compte d'IPv6 dans le réseau par défaut : ''docker network inspect bridge|grep EnableIPv6''
 +  * Si vous avez déjà créer votre réseau local Docker (Ex. //nginx-proxy//) :
 +    * éteindre tous les containers via Portainer par exemple.
 +    * supprimer votre réseau : ''docker network rm nginx-proxy''
 +    * [[serveurs:installation:docker#creation_d_un_reseau_local_docker|créer à nouveau le réseau externe (nginx-proxy) avec l'activation d'IPv6]]
 +    * Redémarrer toutes les stacks avec : ''docker compose down; docker compose up -d''
 +  * Si vous utiliser le container [[https://hub.docker.com/r/nginxproxy/nginx-proxy|nginxproxy/nginx-proxy]] activer l'écoute sur les IPv6 en plus d'IPv4: <code yaml>
 +    ports:
 +      - "0.0.0.0:80:80"
 +      - "0.0.0.0:443:443"
 +      - "[::]:80:80"
 +      - "[::]:443:443"
 + </code>
 +    * Vous pouvez vérifier la bonne écoute sur les ports 80 et 443 de l'IPv6 locale avec : ''ss -6ltpn''
 +  * Si vous utiliser [[https://hub.docker.com/r/nginxproxy/docker-gen|nginxproxy/docker-gen]], activer le support d'IPv6 dans le fichier //docker-compose.yml// :<code yaml>
 +    environment:
 +      ENABLE_IPV6: true
 + </code>
 +  * Tester la connectivité IPv6 vers votre site web avec : https://ready.chair6.net/
 ===== Création d'un réseau local Docker ===== ===== Création d'un réseau local Docker =====
   * Créer un réseau local de type bridge "utilisateur" compatible IPv4 et IPv6 avec : ''<nowiki> docker network create --driver=bridge --ipv6 --subnet=172.18.5.0/24 --ip-range=172.18.5.0/24 --subnet a1f:ea75:ca75::/48 --gateway=172.18.5.1 nginx-proxy</nowiki> ''   * Créer un réseau local de type bridge "utilisateur" compatible IPv4 et IPv6 avec : ''<nowiki> docker network create --driver=bridge --ipv6 --subnet=172.18.5.0/24 --ip-range=172.18.5.0/24 --subnet a1f:ea75:ca75::/48 --gateway=172.18.5.1 nginx-proxy</nowiki> ''
Ligne 92: Ligne 125:
   * Pour chaque serveur, synchroniser ces fichiers avec le serveur correspondant en utilisant ''rsync'' :   * Pour chaque serveur, synchroniser ces fichiers avec le serveur correspondant en utilisant ''rsync'' :
     * Se placer à la racine du dépôt     * Se placer à la racine du dépôt
-    * Lancer la commande ''rsync'' suivante, ici pour //web-srv// et le dossier ///web-srv/home/admin/docker// avec l'option ''--dry-run'' (à supprimer quand tout est ok) : <code bash> rsync -av ./web-srv/home/admin/docker/ admin@web-<region>-sinp:/home/admin/docker/ --dry-run </code>+    * Lancer la commande ''rsync'' suivante, ici pour //web-srv// et le dossier ///web-srv/home/admin/docker// avec l'option ''%%--dry-run%%'' (à supprimer quand tout est ok) : <code bash> rsync -av ./web-srv/home/admin/docker/ admin@web-<region>-sinp:/home/admin/docker/ --dry-run </code>
  
 ===== Renommer une stack générer via docker-compose ===== ===== Renommer une stack générer via docker-compose =====
Ligne 157: Ligne 190:
   * Se connecter à un container : ''docker exec -it <container name> /bin/bash''   * Se connecter à un container : ''docker exec -it <container name> /bin/bash''
     * Depuis un container (si ''ip'' est installé - paquet //iproute2//), afficher l'IP de l'hôte : ''ip route|awk '/default/ { print $3 }'''     * Depuis un container (si ''ip'' est installé - paquet //iproute2//), afficher l'IP de l'hôte : ''ip route|awk '/default/ { print $3 }'''
 +  * Informations sur la place occupée par Docker : 
 +    * Résumé de la place occupée : <code bash>docker system df</code> 
 +    * Infos détaillées dont la place occupée par chaque volume : <code bash>docker system df --verbose</code> 
 +  * Nettoyage : 
 +    * <color #ed1c24>**ATTENTION:**</color> **s'assurer au préalable que  tous les containers utiles sont bien actif sur l'hôte !** 
 +    * <color #ed1c24>Nettoyer tout (images, containers et réseaux) inactifs</color> : <code bash>docker system prune</code> 
 +    * <color #ed1c24>Nettoyer tout (images, containers et réseaux) et les volumes contenant des données (!!) inactifs</color> : <code bash>docker system prune --volumes</code>
 ==== Docker Compose ==== ==== Docker Compose ====
   * **Source** : https://opensharing.fr/docker-compose-commandes-utiles   * **Source** : https://opensharing.fr/docker-compose-commandes-utiles
  • serveurs/installation/docker.1696538345.txt.gz
  • Dernière modification : 2023/10/05 20:39
  • de jpmilcent