4.1 백업과 데이터 복구의 주요 방법
혹시 중요한 데이터를 한 번이라도 잃어본 적 있다면 백업이 왜 중요한지 설명할 필요가 없을 거야. 이번 강의에서는 Docker에서 볼륨과 바인딩 디렉토리를 포함한 백업 및 데이터 복구를 위한 다양한 방법과 도구들을 살펴볼 거야.
백업과 데이터 복구의 주요 방법
- Docker 볼륨 백업
- tar 유틸리티를 사용한 백업
- 컨테이너 내 데이터베이스 백업
- 백업에서 데이터 복구
4.2 Docker 볼륨 백업
Docker 볼륨은 컨테이너 외부에 데이터를 저장하는 편리한 방법이야. 볼륨 백업을 생성하려면 다양한 접근 방식을 사용할 수 있어.
docker run 명령어를 사용한 볼륨 백업 예제
볼륨 백업 생성
볼륨을 마운트하는 컨테이너를 생성하고 tar 유틸리티를 사용하여 데이터 아카이브를 생성해:
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
유틸리티를 사용해 데이터를 추출해:
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
를 사용해서 아카이브를 만들어:
docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .
이 예제에서 컨테이너 my_container
의 /data
디렉토리 데이터가 파일my_container_backup.tar.gz
에 아카이브돼.
아카이브 데이터를 복구하는 예제
컨테이너를 실행하고 tar를 사용해서 아카이브 데이터 추출하기:
docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data
4.4 컨테이너 내 데이터베이스 백업
데이터베이스를 위해 종종 백업과 복원을 위한 전문 도구가 사용돼.
PostgreSQL 데이터베이스 백업 예제
pg_dump
유틸리티를 사용해서 데이터베이스 백업을 만들어봐:
docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql
이 예제에서 데이터베이스 mydb
는 파일 mydb_backup.sql
로 내보내져.
PostgreSQL 데이터베이스 복원 예제
psql
유틸리티를 사용하여 백업에서 데이터베이스를 복원해봐:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb
4.5 백업에서 데이터 복구
데이터 복구는 이전에 생성된 백업에서 데이터를 추출하는 과정이야.
볼륨 백업에서 데이터 복구 예제
docker run
명령어를 사용해서 볼륨에 데이터를 추출해:
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
유틸리티를 사용해서 데이터베이스 백업을 생성해:
docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql
mysql 유틸리티를 사용해서 데이터베이스를 복구해:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
GO TO FULL VERSION