bash
docker images
bash
for image in $(docker images -q); do
docker save -o "/chemin/vers/sauvegarde/image_$(echo $image | tr ':' '_').tar" $image
done
bash
docker ps
bash
docker ps -a
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
bash
docker volume ls
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
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/
bash
ssh utilisateur@serveur_b
bash
for file in /chemin/vers/destination/*.tar; do
docker load -i "$file"
done
bash
for volume in $(docker volume ls -q); do
docker volume create $volume
done
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
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