[파이썬] 도커 컨테이너와 호스트 간 데이터 볼륨 설정

도커(Docker)는 애플리케이션을 격리된 환경인 컨테이너(Container)에서 실행하는 가벼운 가상화 플랫폼입니다. 도커를 사용하면 애플리케이션을 더 쉽게 배포하고 확장할 수 있으며, 호스트와 독립적으로 동작하여 애플리케이션 간의 충돌을 방지할 수 있습니다.

하지만 도커 컨테이너에서 실행되는 애플리케이션은 기본적으로 격리된 파일 시스템을 가지고 있으며, 컨테이너를 종료하면 컨테이너 내부의 데이터도 함께 소실됩니다. 따라서, 장기적인 데이터 보관이 필요한 경우 컨테이너와 호스트 간의 데이터 볼륨을 설정해야 합니다.

데이터 볼륨 설정 방법

도커 컨테이너와 호스트 간의 데이터 볼륨을 설정하는 방법은 여러 가지가 있습니다. 이 중에서 가장 간단하고 일반적인 방법으로는 호스트 디렉토리를 컨테이너 내부에 마운트하는 방식입니다.

아래는 Python을 사용하여 도커 컨테이너와 호스트 간의 데이터 볼륨을 설정하는 예시 코드입니다.

import docker

# 도커 클라이언트 생성
client = docker.from_env()

# 호스트 디렉토리 경로
host_directory = "/path/to/host"

# 컨테이너 생성
container = client.containers.run(
    "image_name",
    volumes={host_directory: {"bind": "/path/to/container", "mode": "rw"}},
    detach=True,
)

# 컨테이너 실행 중인지 확인
print(container.status)

# 컨테이너 종료
container.stop()

위의 코드에서는 docker 모듈을 사용하여 도커 클라이언트를 생성하고, 호스트 디렉토리 경로를 지정합니다. 그리고 client.containers.run 메서드를 사용하여 컨테이너를 생성하면서 호스트 디렉토리와 컨테이너 내부의 경로를 연결합니다. detach=True 옵션을 통해 컨테이너를 백그라운드로 실행하고, container.stop() 메서드를 사용하여 컨테이너를 종료합니다.

이렇게 설정한 데이터 볼륨은 컨테이너 내부에서 수정된 내용이 호스트 디렉토리에 반영되며, 호스트에서 수정된 내용 역시 컨테이너 내부에서 실시간으로 업데이트됩니다.

마치며

도커 컨테이너와 호스트 간의 데이터 볼륨 설정은 장기적인 데이터 보존과 데이터 공유에 중요한 역할을 합니다. 위에서 소개한 예시 코드를 참고하여 도커 컨테이너에서 데이터 볼륨을 설정하는 방법에 대해 알아보았습니다. 도커를 이용하여 애플리케이션을 개발, 테스트, 배포하는 과정에서 데이터 볼륨 설정은 반드시 고려해야 할 요소입니다.