Lister toutes les images Docker :
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 :
for image in $(docker images -q); do
docker save -o "/chemin/vers/sauvegarde/image_$(echo $image | tr ':' '_').tar" $image
done
Lister tous les conteneurs en cours d'exécution :
docker ps
Lister tous les conteneurs (y compris ceux arrêtés) :
docker ps -a
Créer une image à partir de chaque conteneur :
Pour sauvegarder tous les conteneurs, vous pouvez également utiliser une boucle :
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
Lister tous les volumes Docker :
docker volume ls
Sauvegarder chaque volume :
Pour sauvegarder tous les volumes, vous pouvez utiliser une boucle avec Alpine :
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
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
:
scp /chemin/vers/sauvegarde/*.tar utilisateur@serveur_b:/chemin/vers/destination/
Connectez-vous au serveur B :
ssh utilisateur@serveur_b
Importer toutes les images Docker :
Pour importer toutes les images, vous pouvez utiliser une boucle :
for file in /chemin/vers/destination/*.tar; do
docker load -i "$file"
done
Créer chaque volume sur le serveur B :
Pour chaque volume que vous avez sauvegardé, créez-le sur le serveur B :
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 :
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
Après l'importation, vous pouvez vérifier que toutes les images et volumes ont bien été importés en utilisant :
docker images
docker volume ls
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.