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

도커 컨테이너 내에서 데이터를 보관하거나 공유해야 할 경우 데이터 볼륨 설정이 필요합니다. 호스트와 도커 컨테이너 간에 데이터를 주고받을 수 있도록 볼륨을 마운트하는 방법을 알아보겠습니다. 이를 python 예제를 통해 설명해보겠습니다.

도커 컨테이너와 호스트 간 데이터 볼륨 설정 예제

  1. 우선, 도커를 설치합니다. 도커 공식 사이트에서 운영체제에 맞는 도커 설치 파일을 다운로드하고 설치합니다.

  2. 다음으로, python으로 간단한 웹 서버를 생성하는 파일인 app.py를 작성합니다. 아래는 예제 코드입니다.

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Docker!"

if __name__ == "__main__":
    app.run(host="0.0.0.0")
  1. 이제 도커 이미지를 생성하기 위해 Dockerfile을 작성합니다. 아래는 예제 코드입니다.
FROM python:3.9

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["python", "app.py"]
  1. requirements.txt 파일을 작성하여 필요한 패키지를 명시합니다. 아래는 예제 코드입니다.
flask==1.1.2
  1. 이제 터미널을 열고 도커 이미지를 빌드합니다.
docker build -t my-webapp .
  1. 도커 컨테이너를 실행하여 웹 서버를 실행합니다. 도커 컨테이너와 호스트 간의 포트를 매핑하여 외부에서 접근할 수 있도록 설정합니다.
docker run -d -p 8080:5000 -v $(pwd)/data:/app/data --name my-container my-webapp

위 명령어에서 -v $(pwd)/data:/app/data는 호스트의 ./data 디렉토리를 도커 컨테이너 내의 /app/data 디렉토리에 마운트하는 역할을 합니다.

  1. 이제 웹 브라우저에서 http://localhost:8080을 열어보면 “Hello, Docker!”라는 메시지가 표시됩니다. 도커 컨테이너 내부의 app.py 파일이 호스트의 ./app/data 디렉토리와 연결되어 데이터가 공유됩니다.

이렇게 도커 컨테이너와 호스트 간 데이터 볼륨을 설정하여 데이터를 공유할 수 있습니다. 데이터 볼륨 설정을 통해 도커 컨테이너의 상태를 유지하거나 컨테이너 간 데이터 공유 등 다양한 용도로 활용할 수 있습니다.

도커를 사용하여 애플리케이션을 개발하고 배포하는 과정에서 데이터 볼륨 설정은 중요한 요소이므로, 유의해야 합니다.

Happy coding!