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

도커는 애플리케이션을 컨테이너로 패키징하여 실행하는 가벼운 가상화 플랫폼입니다. 컨테이너는 독립적으로 실행되며, 호스트 시스템과는 격리되어 있습니다. 도커의 장점 중 하나는 데이터 볼륨을 컨테이너와 호스트 사이에서 공유할 수 있다는 점입니다. 이를 통해 애플리케이션의 데이터를 영속적으로 보관하고, 여러 컨테이너 간 데이터 공유가 가능해집니다.

이번 포스트에서는 도커 컨테이너와 호스트 간 데이터 볼륨 설정을 Python을 사용하여 실습해보겠습니다.

1. 데이터 볼륨 생성

먼저, 데이터 볼륨을 생성하기 위해 docker 모듈을 설치해야 합니다. 이 모듈은 Python에서 도커 관련 작업을 수행할 수 있도록 도와줍니다.

pip install docker

다음으로, docker 모듈을 import 합니다.

import docker

이제 데이터 볼륨을 생성하기 위해 docker 모듈을 사용할 수 있습니다.

client = docker.from_env()
container = client.containers.create('ubuntu', command='sleep 300')
volume = client.volumes.create(name='my_volume')
container.start(volumes={volume.name: {'bind': '/data', 'mode': 'rw'}})

위의 코드에서는 docker 모듈을 사용하여 도커 클라이언트를 생성합니다. 그리고 ubuntu 이미지를 사용하여 컨테이너를 생성하고 실행합니다. 이때, volumes 매개변수를 통해 호스트와 컨테이너 사이의 볼륨 매핑을 설정합니다. bind 옵션을 사용하여 호스트의 디렉토리와 컨테이너의 디렉토리를 연결하고, mode 옵션을 사용하여 읽기/쓰기 권한을 설정합니다.

2. 데이터 볼륨 사용

데이터 볼륨을 생성했다면, 컨테이너에서 이를 사용할 수 있습니다. 데이터 볼륨은 컨테이너의 파일 시스템에 마운트되어, 파일이나 폴더를 컨테이너와 호스트 간에 공유할 수 있습니다.

container.exec_run('mkdir /data/my_folder')

위의 코드는 컨테이너 내부에서 mkdir 명령어를 실행하여 /data/my_folder 디렉토리를 생성하는 예시입니다. 이렇게 생성된 디렉토리는 호스트의 데이터 볼륨에 영구적으로 저장됩니다.

3. 데이터 볼륨 삭제

데이터 볼륨을 더 이상 사용하지 않을 경우, 삭제할 수 있습니다.

volume.remove(force=True)

위의 코드는 my_volume 데이터 볼륨을 삭제하는 예시입니다. force=True 옵션을 사용하여 강제로 삭제할 수 있습니다.

마무리

이번 포스트에서는 도커 컨테이너와 호스트 간 데이터 볼륨 설정을 Python을 사용하여 실습해보았습니다. 데이터 볼륨은 도커의 강력한 기능 중 하나로, 애플리케이션의 데이터를 영속적으로 관리하고 여러 컨테이너 간 데이터를 공유하는데 유용합니다. Python을 사용하여 데이터 볼륨을 생성, 사용 및 삭제하는 방법을 익혀두면 도커 환경에서 유연하게 데이터를 다룰 수 있습니다.