Резервная копия и восстановление Docker image образов
Резервная копия
Есть несколько путей — создание резервной копии всех Docker image образов в один архив, определенных образов в один архив или каждый образ в отдельный архив
Для всех образов один .tar архив
1 | docker save $(docker images -q) -o /backup/docker-images.tar |
Для экспорта определенных образов в один .tar архив
1 2 | IDS=$(docker images | awk '{if ($1 ~ /^(debian|centos)/) print $3}') docker save $IDS -o /backup/docker-images.tar |
Вместо «debian|centos» указываем нужный вам фильтр
Для экспорта всех образов в индивидуальный .tar архив
1 2 3 4 5 | docker images | sed '1d' | awk '{print $1 " " $2 " " $3}' | tr -c "a-z A-Z0-9_.\n-" "%" | while read REPOSITORY TAG IMAGE_ID do echo "== Saving $REPOSITORY $TAG $IMAGE_ID ==" docker save -o /home/bkps/$REPOSITORY-$TAG-$IMAGE_ID.tar $IMAGE_ID done |
Для экспорта определенных образов в индивидуальный .tar архив
1 2 3 4 5 | docker images | awk '{if ($1 ~ /^(openshift|centos)/) print $1 " " $2 " " $3 }' | tr -c "a-z A-Z0-9_.\n-" "%" | while read REPOSITORY TAG IMAGE_ID do echo "== Saving $REPOSITORY $TAG $IMAGE_ID ==" docker save -o /backups/$REPOSITORY-$TAG-$IMAGE_ID.tar $IMAGE_ID done |
Если сохраняем в индивидуальные архивы, то также нужно сформировать список образов
1 | docker images | sed '1d' | awk '{print $1 " " $2 " " $3}' > images.list |
Восстановление
В случае, если образы были упакованы в один файл, то запускаем следующую команду:
1 | docker load -i /backup/docker-images.tar |
В случае если резервные копии Docker образов были упакованы в несколько .tar архивов, то запускаем следующую команду
1 2 3 4 5 | while read REPOSITORY TAG IMAGE_ID do echo "== Tagging $REPOSITORY $TAG $IMAGE_ID ==" docker tag "$IMAGE_ID" "$REPOSITORY:$TAG" done < images.list |
Источник stackoverflow.com