업데이트 2
원시 단일 볼륨 백업 bash 스크립트 :
#!/bin/bash
# This script allows you to backup a single volume from a container
# Data in given volume is saved in the current directory in a tar archive.
CONTAINER_NAME=$1
VOLUME_NAME=$2
usage() {
echo "Usage: $0 [container name] [volume name]"
exit 1
}
if [ -z $CONTAINER_NAME ]
then
echo "Error: missing container name parameter."
usage
fi
if [ -z $VOLUME_NAME ]
then
echo "Error: missing volume name parameter."
usage
fi
sudo docker run --rm --volumes-from $CONTAINER_NAME -v $(pwd):/backup busybox tar cvf /backup/backup.tar $VOLUME_NAME
원시 단일 볼륨 복원 bash 스크립트 :
#!/bin/bash
# This script allows you to restore a single volume from a container
# Data in restored in volume with same backupped path
NEW_CONTAINER_NAME=$1
usage() {
echo "Usage: $0 [container name]"
exit 1
}
if [ -z $NEW_CONTAINER_NAME ]
then
echo "Error: missing container name parameter."
usage
fi
sudo docker run --rm --volumes-from $NEW_CONTAINER_NAME -v $(pwd):/backup busybox tar xvf /backup/backup.tar
사용법은 다음과 같습니다.
$ volume_backup.sh old_container /srv/www
$ sudo docker stop old_container && sudo docker rm old_container
$ sudo docker run -d --name new_container myrepo/new_container
$ volume_restore.sh new_container
가정 : 백업 파일 이름은 backup.tar이며 백업 및 복원 스크립트와 동일한 디렉토리에 있으며 볼륨 이름은 컨테이너간에 동일합니다.
최신 정보
컨테이너에서 볼륨을 백업하는 것은 데이터 컨테이너에서 볼륨을 백업하는 것과 다르지 않습니다.
볼륨은 컨테이너에 연결된 경로 일 뿐이므로 프로세스는 동일합니다.
docker-backup이 동일한 컨테이너 볼륨에서도 작동하는지 모르겠지만 다음을 사용할 수 있습니다.
sudo docker run --rm --volumes-from yourcontainer -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
과:
sudo docker run --rm --volumes-from yournewcontainer -v $(pwd):/backup busybox tar xvf /backup/backup.tar
업데이트 종료
도커 볼륨 컨테이너를 백업하고 복원 할 수있는 유용한 도구가 있습니다.
https://github.com/discordianfish/docker-backup
컨테이너가 다음과 같은 일부 컨테이너 볼륨에 연결된 경우 :
$ docker run --volumes-from=my-data-container --name my-server ...
다음과 같이 모든 볼륨을 백업 할 수 있습니다.
$ docker-backup store my-server-backup.tar my-server
다음과 같이 복원하십시오.
$ docker-backup restore my-server-backup.tar
또는 공식적인 방법을 따를 수 있습니다.
한 호스트에서 다른 호스트로 데이터 전용 볼륨을 포팅하는 방법은 무엇입니까?