Outils pour utilisateurs

Outils du site


linux:docker

Étape 1 : Lister et sauvegarder les images Docker sur le serveur A

  1. Lister toutes les images Docker : bash docker images
  2. Sauvegarder toutes les images Docker : Pour sauvegarder toutes les images, vous pouvez utiliser une boucle pour les sauvegarder une par une. Voici un exemple de script bash : bash for image in $(docker images -q); do docker save -o "/chemin/vers/sauvegarde/image_$(echo $image | tr ':' '_').tar" $image done

Étape 2 : Lister et sauvegarder les conteneurs Docker

  1. Lister tous les conteneurs en cours d'exécution : bash docker ps
  2. Lister tous les conteneurs (y compris ceux arrêtés) : bash docker ps -a
  3. Créer une image à partir de chaque conteneur : Pour sauvegarder tous les conteneurs, vous pouvez également utiliser une boucle : bash for container in $(docker ps -aq); do docker commit $container "image_from_container_$container" docker save -o "/chemin/vers/sauvegarde/image_from_container_$container.tar" "image_from_container_$container" done

Étape 3 : Lister et sauvegarder les volumes Docker

  1. Lister tous les volumes Docker : bash docker volume ls
  2. Sauvegarder chaque volume : Pour sauvegarder tous les volumes, vous pouvez utiliser une boucle avec Alpine : bash for volume in $(docker volume ls -q); do docker run --rm -v $volume:/volume -v /chemin/vers/sauvegarde:/backup alpine sh -c "cd /volume && tar czf /backup/${volume}_data.tar.gz ." done

Étape 4 : Transférer les fichiers vers le serveur B

Utilisez scp ou rsync pour transférer tous les fichiers tar (images et données de volume) vers le serveur B. Voici un exemple avec scp :

snippet.bash
scp /chemin/vers/sauvegarde/*.tar utilisateur@serveur_b:/chemin/vers/destination/

Étape 5 : Importer les images Docker sur le serveur B

  1. Connectez-vous au serveur B : bash ssh utilisateur@serveur_b
  2. Importer toutes les images Docker : Pour importer toutes les images, vous pouvez utiliser une boucle : bash for file in /chemin/vers/destination/*.tar; do docker load -i "$file" done

Étape 6 : Restaurer les volumes Docker

  1. Créer chaque volume sur le serveur B : Pour chaque volume que vous avez sauvegardé, créez-le sur le serveur B : bash for volume in $(docker volume ls -q); do docker volume create $volume done
  2. Restaurer les données de chaque volume : Pour restaurer les données de chaque volume, utilisez une boucle : bash for file in /chemin/vers/destination/*_data.tar.gz; do volume_name=$(basename "$file" _data.tar.gz) docker run --rm -v $volume_name:/volume -v /chemin/vers/destination:/backup alpine sh -c "cd /volume && tar xzf /backup/$(basename "$file")" done

Étape 7 : Vérifier l'importation

Après l'importation, vous pouvez vérifier que toutes les images et volumes ont bien été importés en utilisant :

snippet.bash
docker images
docker volume ls

Remarques

  • Installation de Docker : Assurez-vous que Docker est installé et en cours d'exécution sur les deux serveurs.
  • Gestion des volumes : Les volumes Docker sont utilisés pour stocker des données persistantes. Ils ne sont pas inclus dans les images Docker et doivent être sauvegardés séparément. Assurez-vous de bien gérer les volumes si vos conteneurs en utilisent, car cela peut affecter le fonctionnement de vos applications.
  • Adaptation des commandes : Les commandes sont adaptées pour utiliser Alpine comme image de base pour les opérations dans les conteneurs.
linux/docker.txt · Dernière modification : de melissandre