[파이썬] 도커 컨테이너와 호스트 간 데이터 볼륨 설정
도커 컨테이너 내에서 데이터를 보관하거나 공유해야 할 경우 데이터 볼륨 설정이 필요합니다. 호스트와 도커 컨테이너 간에 데이터를 주고받을 수 있도록 볼륨을 마운트하는 방법을 알아보겠습니다. 이를 python 예제를 통해 설명해보겠습니다.
도커 컨테이너와 호스트 간 데이터 볼륨 설정 예제
-
우선, 도커를 설치합니다. 도커 공식 사이트에서 운영체제에 맞는 도커 설치 파일을 다운로드하고 설치합니다.
-
다음으로, 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")
- 이제 도커 이미지를 생성하기 위해
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"]
requirements.txt
파일을 작성하여 필요한 패키지를 명시합니다. 아래는 예제 코드입니다.
flask==1.1.2
- 이제 터미널을 열고 도커 이미지를 빌드합니다.
docker build -t my-webapp .
- 도커 컨테이너를 실행하여 웹 서버를 실행합니다. 도커 컨테이너와 호스트 간의 포트를 매핑하여 외부에서 접근할 수 있도록 설정합니다.
docker run -d -p 8080:5000 -v $(pwd)/data:/app/data --name my-container my-webapp
위 명령어에서 -v $(pwd)/data:/app/data
는 호스트의 ./data
디렉토리를 도커 컨테이너 내의 /app/data
디렉토리에 마운트하는 역할을 합니다.
- 이제 웹 브라우저에서
http://localhost:8080
을 열어보면 “Hello, Docker!”라는 메시지가 표시됩니다. 도커 컨테이너 내부의app.py
파일이 호스트의./app/data
디렉토리와 연결되어 데이터가 공유됩니다.
이렇게 도커 컨테이너와 호스트 간 데이터 볼륨을 설정하여 데이터를 공유할 수 있습니다. 데이터 볼륨 설정을 통해 도커 컨테이너의 상태를 유지하거나 컨테이너 간 데이터 공유 등 다양한 용도로 활용할 수 있습니다.
도커를 사용하여 애플리케이션을 개발하고 배포하는 과정에서 데이터 볼륨 설정은 중요한 요소이므로, 유의해야 합니다.
Happy coding!