CodeGym /행동 /Docker SELF /백업과 데이터 복구

백업과 데이터 복구

Docker SELF
레벨 19 , 레슨 3
사용 가능

4.1 백업과 데이터 복구의 주요 방법

혹시 중요한 데이터를 한 번이라도 잃어본 적 있다면 백업이 왜 중요한지 설명할 필요가 없을 거야. 이번 강의에서는 Docker에서 볼륨과 바인딩 디렉토리를 포함한 백업 및 데이터 복구를 위한 다양한 방법과 도구들을 살펴볼 거야.

백업과 데이터 복구의 주요 방법

  1. Docker 볼륨 백업
  2. tar 유틸리티를 사용한 백업
  3. 컨테이너 내 데이터베이스 백업
  4. 백업에서 데이터 복구

4.2 Docker 볼륨 백업

Docker 볼륨은 컨테이너 외부에 데이터를 저장하는 편리한 방법이야. 볼륨 백업을 생성하려면 다양한 접근 방식을 사용할 수 있어.

docker run 명령어를 사용한 볼륨 백업 예제

볼륨 백업 생성

볼륨을 마운트하는 컨테이너를 생성하고 tar 유틸리티를 사용하여 데이터 아카이브를 생성해:

Terminal

docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf 
/backup/my_volume_backup.tar.gz -C /data .

이 예제에서 my_volume 볼륨의 내용은 my_volume_backup.tar.gz 파일로 아카이브되고 호스트의 /path/to/backup 디렉토리에 저장돼.

볼륨 백업 복구 예제

볼륨에 데이터 복구

백업 디렉토리와 볼륨을 마운트하는 컨테이너를 생성하고 tar 유틸리티를 사용해 데이터를 추출해:

Terminal

docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf 
/backup/my_volume_backup.tar.gz -C /data

이 예제에서 my_volume_backup.tar.gz 아카이브의 데이터는 my_volume 볼륨에 추출돼.

4.3 tar 유틸리티를 사용한 백업

tar 유틸리티는 백업을 생성하고 데이터를 복구하는 데 강력한 도구야. 이 도구는 컨테이너 안뿐만 아니라 호스트 시스템에서도 사용할 수 있어.

컨테이너 내에서 데이터 백업 생성 예제

필요한 데이터를 포함한 컨테이너를 실행한 다음 tar를 사용해서 아카이브를 만들어:

Terminal

docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .

이 예제에서 컨테이너 my_container/data 디렉토리 데이터가 파일my_container_backup.tar.gz에 아카이브돼.

아카이브 데이터를 복구하는 예제

컨테이너를 실행하고 tar를 사용해서 아카이브 데이터 추출하기:

Terminal

docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data

4.4 컨테이너 내 데이터베이스 백업

데이터베이스를 위해 종종 백업과 복원을 위한 전문 도구가 사용돼.

PostgreSQL 데이터베이스 백업 예제

pg_dump 유틸리티를 사용해서 데이터베이스 백업을 만들어봐:

Terminal

docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql

이 예제에서 데이터베이스 mydb는 파일 mydb_backup.sql로 내보내져.

PostgreSQL 데이터베이스 복원 예제

psql 유틸리티를 사용하여 백업에서 데이터베이스를 복원해봐:

Terminal

cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb

4.5 백업에서 데이터 복구

데이터 복구는 이전에 생성된 백업에서 데이터를 추출하는 과정이야.

볼륨 백업에서 데이터 복구 예제

docker run 명령어를 사용해서 볼륨에 데이터를 추출해:

Terminal

docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data

MySQL 데이터베이스 복구 예제

mysqldump 유틸리티를 사용해서 데이터베이스 백업을 생성해:

Terminal

docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql

mysql 유틸리티를 사용해서 데이터베이스를 복구해:

Terminal

cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION