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

도커 컨테이너는 어플리케이션을 격리된 환경에서 실행하며, 컨테이너 안에서 생성되는 데이터는 일시적으로 유지되는 경우가 많습니다. 그러나 종종 데이터를 영구적으로 유지하고 여러 컨테이너에서 공유해야 할 경우가 있습니다. 이런 경우, 호스트와 컨테이너 간에 데이터 볼륨을 설정하여 데이터를 영구적으로 보존하고 공유할 수 있습니다.

도커에서는 데이터 볼륨을 설정하기 위해 여러 방법을 제공합니다. 이번 글에서는 파이썬을 사용하여 도커 컨테이너와 호스트 간에 데이터 볼륨을 설정하는 방법을 알아보겠습니다.

1. 도커 컨테이너 내부에서 데이터 생성하기

먼저, 컨테이너 내부에서 데이터를 생성하고 호스트와 공유하는 방법을 살펴보겠습니다. 아래는 간단한 파이썬 스크립트입니다.

import os

# 데이터를 생성할 디렉토리 경로
data_dir = '/data'

# 디렉토리 생성
os.makedirs(data_dir, exist_ok=True)

# 데이터 파일 생성
with open(os.path.join(data_dir, 'data.txt'), 'w') as f:
    f.write('Hello, Docker!')

위 코드는 /data 디렉토리를 생성하고 그 안에 data.txt 파일을 생성하여 데이터를 작성합니다. 이제 이 스크립트를 도커 컨테이너에서 실행해보겠습니다.

2. 도커 컨테이너에서 호스트로 데이터 볼륨 공유하기

도커 컨테이너와 호스트 간에 데이터를 공유하기 위해서는 -v 옵션을 사용하여 볼륨 매핑을 설정해야 합니다. 아래와 같이 컨테이너를 실행할 때 -v 옵션을 사용하여 호스트의 디렉토리와 컨테이너의 디렉토리를 연결합니다.

docker run -v <호스트 디렉토리 경로>:<컨테이너 디렉토리 경로> <이미지 이름>

실제로 위에서 생성한 스크립트를 컨테이너에서 실행할 때에는 다음과 같이 명령어를 입력합니다.

docker run -v /path/to/host/data:/data <이미지 이름>

위 명령어에서 /path/to/host/data는 호스트에서 데이터를 저장할 디렉토리 경로입니다. 이렇게 실행하면 호스트에서 해당 디렉토리에 data.txt 파일이 생성되고, 컨테이너 내부에서 생성한 데이터가 호스트와 공유됩니다.

3. 파이썬 스크립트로 데이터 읽어오기

이제 호스트에서 컨테이너로 데이터를 읽어와 파이썬 스크립트에서 처리하는 방법을 알아보겠습니다. 아래는 데이터를 읽어와 출력하는 파이썬 스크립트입니다.

import os

# 데이터를 읽어올 디렉토리 경로
data_dir = '/data'

# 데이터 파일 읽기
with open(os.path.join(data_dir, 'data.txt'), 'r') as f:
    data = f.read()

# 데이터 출력
print(data)

위 스크립트를 실행하면 컨테이너 내부의 data.txt 파일에서 데이터를 읽어와 출력합니다.

결론

이번 글에서는 도커 컨테이너와 호스트 간에 데이터 볼륨을 설정하는 방법을 파이썬 예제를 통해 알아보았습니다. 데이터 볼륨을 설정함으로써 컨테이너 내부에서 생성한 데이터를 영구적으로 유지하고 호스트와 공유할 수 있습니다. 도커의 -v 옵션을 사용하여 데이터 볼륨을 설정하는 방법을 익혀두면 효율적인 데이터 관리가 가능해질 것입니다.