linux:docker
Table des matières
Étape 1 : Lister et sauvegarder les images Docker sur le serveur A
- Lister toutes les images Docker :
bash docker images - 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
- Lister tous les conteneurs en cours d'exécution :
bash docker ps - Lister tous les conteneurs (y compris ceux arrêtés) :
bash docker ps -a - 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
- Lister tous les volumes Docker :
bash docker volume ls - 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
- Connectez-vous au serveur B :
bash ssh utilisateur@serveur_b - 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
- 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 - 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
