IT기술/도커 (docker)

도커 컨테이너 생애주기와 데이터 관리: 영구 저장을 위한 핵심 전략

후스파 2025. 3. 26. 10:35
반응형
도커 Docker

1. 도커 컨테이너 생애주기

도커 컨테이너는 일회용 인프라로, 다음 4단계로 관리됩니다:

    1. 생성 (Create)
      • docker create: 이미지를 기반으로 컨테이너 생성 (실행 전 상태).
      • 예시: docker create --name my_container nginx:latest.
    2. 실행 (Run)
      • docker start 또는 docker run (생성 + 실행 통합):
 
docker run -d --name web_server nginx:latest
    • 백그라운드 실행 시 -d 옵션 사용.
  1. 정지 (Stop)
    • docker stop: 실행 중인 컨테이너를 안전하게 종료.
    • docker kill: 강제 종료 (비정상적인 상황).
  2. 폐기 (Remove)
    • docker rm: 컨테이너 완전 삭제.
    • 주의: 컨테이너 내부 데이터는 영구 저장소에 미리 연결하지 않으면 모두 삭제됩니다.

 

2. 데이터 관리 전략

컨테이너는 기본적으로 임시 저장 공간을 사용하므로, 데이터 영속성 확보가 필수적입니다.

▷ 도커 볼륨 (Docker Volume)

  • 특징: 도커가 관리하는 전용 스토리지 영역.
  • 사용법:
# 볼륨 생성
docker volume create my_volume

# 볼륨 마운트
docker run -d -v my_volume:/app/data nginx:latest
  • 장점:
    • 호스트 시스템 경로와 독립적.
    • 여러 컨테이너 간 데이터 공유 가능 (--volumes-from).

▷ 바인드 마운트 (Bind Mount)

  • 특징: 호스트의 특정 디렉토리를 컨테이너에 직접 연결.
  • 사용법:
docker run -d -v /host/path:/container/path nginx:latest
  • 장점:
    • 개발 환경에서 소스 코드 실시간 동기화에 유용.
    • 호스트 파일 시스템의 데이터 직접 접근.

▷ TMPFS 마운트

  • 특징: 메모리 기반 임시 저장 (컨테이너 종료 시 데이터 소멸).
  • 사용법:
 
docker run -d --tmpfs /app/cache nginx:latest
 
 

3. 생애주기별 데이터 관리 팁

단계주의사항
생성 볼륨/마운트 옵션을 반드시 추가
실행 로그는 docker logs로 별도 수집
정지 docker cp로 임시 데이터 백업 가능
폐기 docker volume prune으로 사용하지 않는 볼륨 정리
 

4. 실전 예제: 데이터 보존 워크플로우

# 1. 영구 데이터 볼륨 생성
docker volume create db_data

# 2. MySQL 컨테이너 실행 (볼륨 마운트)
docker run -d --name mysql_db -v db_data:/var/lib/mysql mysql:8.0

# 3. 백업 컨테이너에서 데이터 접근
docker run --rm -v db_data:/backup alpine tar czf /backup/backup.tar.gz /var/lib/mysql
 
 
 

5. 데이터 관리 비교표

방식저장 위치사용 사례
볼륨 /var/lib/docker/volumes 프로덕션 DB 데이터
바인드 마운트 호스트 지정 경로 개발 환경 코드 공유
TMPFS 메모리 캐시/임시 처리
 
 

결론

도커 컨테이너는 생애주기 관리와 데이터 영속성 전략의 조화가 핵심입니다. 볼륨을 활용한 데이터 보존과 컨테이너의 일회용 특성을 이해하면, 안정적이고 효율적인 애플리케이션 운영이 가능합니다.

 

 

[docker] 도커 컨테이너 생애주기와 데이터 관리

도커는 애플리케이션을 격리된 환경에서 실행할 수 있게 해주는 강력한 플랫폼입니다. 도커의 컨테이너는 ...

blog.naver.com

 

 

[Docker 핵심 개념] 도커 허브, 이미지, 컨테이너 완벽 가이드

도커(Docker)는 소프트웨어를 컨테이너라는 가벼운 가상 환경에서 실행할 수 있게 해주는 강력한 플랫폼입니다. 이 글에서는 도커의 핵심 개념인 도커 허브, 이미지, 그리고 컨테이너에 대해 상세

hoosfa.tistory.com

 

반응형