Docker 데이터 전용 컨테이너를 이용한 백업 및 복구
본 투고에서 아래 그림과 같이 데이터의 운반성을 높이기 위해 데이터 전용 용기를 이용하여 다음과 같은 처리를 실현한다.
구현할 프로세스 및 이미지
처리하다.
1. 버스박스 이미지 획득
Docker에서 데이터 전용 컨테이너를 만들려면 일반 OS 이미지 대신 busybox 이미지를 사용합니다.
busybox는 항상 최소한의 케이스 환경을 제공하는 데 사용된다.
shell
$ docker image pull busybox:latest
latest: Pulling from library/busybox
53071b97a884: Pull complete
Digest: sha256:4b6ad3a68d34da29bf7c8ccb5d355ba8b4babcad1f99798204e7abb43e54ee3d
Status: Downloaded newer image for busybox:latest
2. 데이터 전용 용기의 생성
busybox의 이미지를 이용하여 데이터 전용 용기 d0001을 생성합니다.
shell
$ docker container run -it -v /data0001 --name d0001 busybox /bin/sh
/ # pwd
/
/ #
3. 테스트 파일 만들기
d001 용기의/data0001/디렉터리 아래에 테스트 파일을 만듭니다.
shell
$ docker attach d0001
/ # ls -a /data0001/
. ..
/ # echo "Hello data container" > /data0001/datafile01.txt
/ # cat /data0001/datafile01.txt
Hello data container
/ #
4. 다른 컨테이너에서 테스트 파일 참조
centos7.5 그림에서 생성된 일반 용기에서 데이터 전용 용기 d0001의 테스트 파일을 참조할 수 있는지 확인합니다.
shell
$ docker container run -it --volumes-from d0001 --name c0004 -h 0004 centos:7.5.1804 /bin/bash
[root@0004 /]# cat /data0001/datafile01.txt
Hello data container
[root@0004 /]#
5. 데이터 전용 용기를 이용하여 음량 백업
busybox와 tar 명령을 조합하면 호스트 OS에서 데이터 전용 용기에 저장된 데이터를 백업할 수 있습니다.
다음은 위 3단계에서 생성한 테스트 파일을 백업으로 호스트 OS 디렉토리에 저장한 백업 실행 명령의 예입니다.
run-rm 명령을 사용하여 컨테이너를 부팅하면 호스트 OS의 백업이 완료되면 컨테이너가 자동으로 삭제됩니다.
shell
$ mkdir hostdir
$ docker container run --rm --volumes-from d0001 -v /${host-os-dir}/hostdir:/ctdir busybox:latest tar cvf /ctdir/backup.tar /data0001
tar: removing leading '/' from member names
data0001/
data0001/datafile01.txt
$ ls hostdir # ホストOS上にバックアップとして保存されているのを確認します。
backup.tar
$ tar tf hostdir/backup.tar
data0001/
data0001/datafile01.txt
6. 호스트 OS에서 백업한 데이터를 다른 컨테이너에 다시 로드
5단계에 따라 호스트 OS에서 백업한 데이터를 다른 컨테이너로 복원합니다.
컨테이너의 생성
shell
$ docker container run -it -v /data0001 --name c0005 -h c0005 centos:7.5.1804 /bin/bash
[root@c0005 /]# ls -l /data0001/
total 0
[root@c0005 /]#
$ docker container run -it -v /data --name c0005 -h c0005 centos:7.5.1804 /bin/bash
재시작 실행 및 확인
shell
$ docker container run --rm --volumes-from c0005 -v /${host-os-dir}/hostdir:/ctdir busybox:latest tar xvf /ctdir/backup.tar -C /
data0001/
data0001/datafile01.txt
$ docker container attach c0005
[root@c0005 /]# cat /data0001/datafile01.txt
Hello data container
[root@c0005 /]#
참고 문헌
고하정순,'Docker 실천지침 제2판', pp.12-117(2019).
Reference
이 문제에 관하여(Docker 데이터 전용 컨테이너를 이용한 백업 및 복구), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ksugawara61/items/a383cc9c087e4e1b70e4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)