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

데이터 볼륨 연결

도커 컨테이너와 호스트 간의 데이터 볼륨 공유는 docker 패키지에서 volumes 옵션을 통해 설정할 수 있습니다. 다음은 간단한 예제 코드입니다.

import docker

client = docker.from_env()

volumes = {
  '/path/to/host/directory': {
    'bind': '/path/to/container/directory',
    'mode': 'rw'
  }
}

container = client.containers.run(
  'image_name',
  volumes=volumes,
  detach=True
)

위의 예제에서, /path/to/host/directory는 호스트 시스템의 디렉토리 경로를 나타내며, /path/to/container/directory는 도커 컨테이너 내의 디렉토리 경로를 나타냅니다. 볼륨 연결은 volumes 변수에 딕셔너리 형태로 정의되며, bind 키는 호스트와 컨테이너 간의 경로를 설정하고, mode 키는 해당 경로의 읽기/쓰기 권한을 설정합니다.

데이터 볼륨 공유 확인

볼륨이 제대로 설정되었는지 확인하기 위해 컨테이너 내부에서 파일을 작성하고 호스트 시스템에서 이를 확인해보겠습니다.

import docker

client = docker.from_env()

container = client.containers.get('container_id')

container.exec_run('echo "Hello, Docker!" > /path/to/container/directory/test.txt')

with open('/path/to/host/directory/test.txt', 'r') as f:
    print(f.read())

위의 예제는 exec_run 메서드를 사용하여 컨테이너 내부에서 명령을 실행하고, 호스트 시스템에서 해당 파일을 읽어오는 코드입니다. 만약 파일을 정상적으로 읽어온다면, 데이터 볼륨이 제대로 설정되었다는 것을 알 수 있습니다.

도커 컨테이너와 호스트 간 데이터 볼륨 설정은 애플리케이션의 데이터 공유와 관리를 훨씬 효율적으로 할 수 있도록 도와줍니다. docker 패키지를 활용하여 데이터 볼륨을 설정하고, 필요한 작업을 수행해보세요. 도커 컨테이너를 효율적으로 관리할 수 있는 기능들을 활용하면, 애플리케이션의 배포와 실행을 원활하게 진행할 수 있습니다.