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

도커(Docker)는 컨테이너 기반 가상화 기술을 사용하여 애플리케이션을 격리된 환경에서 실행하고 관리하는 데 사용되는 플랫폼입니다. 도커는 개발과 배포 과정을 단순화하고 확장성을 향상시키는 많은 기능을 제공합니다. 이 중 하나는 호스트와 도커 컨테이너 간에 데이터 볼륨을 공유하는 기능입니다. 이 글에서는 파이썬을 사용하여 도커 컨테이너와 호스트 간에 데이터를 공유하는 방법에 대해 알아보겠습니다.

1. 도커 볼륨 생성하기

먼저, 도커에서 데이터를 공유하기 위해 볼륨을 생성해야 합니다. 볼륨은 호스트와 도커 컨테이너 간에 데이터를 저장하고 공유할 수 있는 디렉토리입니다. 볼륨을 생성하려면 다음과 같이 docker volume create 명령을 사용합니다:

$ docker volume create myvolume

위 명령은 myvolume라는 이름의 볼륨을 생성합니다. 이제 호스트와 도커 컨테이너 모두에서 이 볼륨에 접근할 수 있습니다.

2. 호스트 데이터를 도커 볼륨에 복사하기

다음으로, 호스트에서 도커 컨테이너로 데이터를 복사해야 합니다. 이 작업을 수행하기 위해 파이썬 shutil 모듈을 사용할 수 있습니다. 다음은 호스트의 데이터를 복사하여 도커 볼륨에 저장하는 예제입니다:

import shutil

src_path = '/path/to/host/data'
dest_path = '/var/lib/docker/volumes/myvolume/_data'

shutil.copytree(src_path, dest_path)

위 코드에서 src_path는 호스트의 데이터가 있는 경로를, dest_path는 도커 볼륨의 경로를 나타냅니다. shutil.copytree 함수를 사용하여 디렉토리 전체를 복사할 수 있습니다.

3. 도커 컨테이너에서 볼륨 사용하기

이제 데이터가 도커 볼륨에 저장되었으므로 도커 컨테이너에서 이 데이터를 사용할 수 있습니다. 도커 컨테이너를 실행할 때, -v 또는 --volume 옵션을 사용하여 도커 볼륨과 컨테이너의 경로를 매핑할 수 있습니다. 예를 들어, 다음과 같이 도커 컨테이너를 실행할 수 있습니다:

$ docker run -v myvolume:/app/data mycontainer

위 명령은 myvolume 볼륨을 /app/data 경로로 매핑하여 도커 컨테이너 내에서 사용할 수 있게 합니다. 이제 도커 컨테이너에서는 /app/data 경로에 접근하여 볼륨에 저장된 데이터를 사용할 수 있습니다.

결론

이번 글에서는 도커 컨테이너와 호스트 간에 데이터 볼륨을 공유하는 방법에 대해 알아보았습니다. 도커 볼륨을 사용하면 호스트와 도커 컨테이너 간에 데이터를 쉽게 공유할 수 있으며, 개발과 배포 과정을 더욱 효율적으로 관리할 수 있습니다.