[Docker] Docker build 기본순서

sing sang song·2024년 2월 9일
0

CLOUD

목록 보기
2/2
post-thumbnail

Docker를 이용하여 이 Flask 애플리케이션을 빌드하고 실행하는 과정은 다음과 같은 순서로 진행됩니다:

1. Dockerfile 작성

애플리케이션의 루트 디렉토리에 Dockerfile을 생성합니다. 이 파일은 Docker 이미지를 빌드할 때 필요한 지시어를 담고 있습니다. 예를 들어:

# 베이스 이미지 선택
FROM python:3.9-slim

# 작업 디렉토리 설정
WORKDIR /app

# 의존성 파일 복사
COPY requirements.txt .

# 파이썬 의존성 설치
RUN pip install --no-cache-dir -r requirements.txt

# 애플리케이션 코드 복사
COPY . .

# 실행할 명령어 설정
CMD ["flask", "run", "--host=0.0.0.0"]

2. requirements.txt 파일 준비

Flask 애플리케이션과 관련된 모든 의존성을 requirements.txt 파일에 명시합니다. 예를 들어:

flask
flask_sqlalchemy
python-dotenv

3. Docker 이미지 빌드

터미널 또는 커맨드 프롬프트에서 다음 명령어를 사용하여 Docker 이미지를 빌드합니다. 이 때, .는 현재 디렉토리(즉, Dockerfile이 위치한 디렉토리)를 가리키며, -t 옵션으로 이미지의 이름을 지정할 수 있습니다:

docker build -t flask-app .

4. Docker 컨테이너 실행

빌드한 이미지를 바탕으로 Docker 컨테이너를 실행합니다. -d 옵션은 컨테이너를 백그라운드에서 실행하며, -p 옵션으로 호스트와 컨테이너 간의 포트를 매핑합니다:

docker run -d -p 5000:5000 flask-app

이 명령어는 호스트의 5000 포트와 컨테이너의 5000 포트를 연결합니다. Flask 애플리케이션이 CMD ["flask", "run", "--host=0.0.0.0"] 명령어로 실행되면서, 컨테이너의 5000 포트에서 듣기 시작합니다.

추가 설정

  • 애플리케이션에서 데이터베이스와 같은 외부 서비스를 사용하는 경우, 해당 서비스를 Docker 컨테이너로 실행하고 Docker 네트워크를 통해 연결할 수 있습니다.
  • .env 파일이나 환경변수를 통해 애플리케이션 설정을 관리할 수 있습니다. Docker에서는 --env 플래그를 사용하여 컨테이너 실행 시 환경변수를 설정할 수 있습니다.

이렇게 하면 Docker를 사용하여 Flask 애플리케이션을 컨테이너화하고 실행하는 기본적인 방법을 마쳤습니다. Docker와 관련된 추가적인 설정이나 복잡한 아키텍처를 구성할 필요가 있다면, docker-compose를 사용하는 것도 고려해볼 수 있습니다.

profile
세상을 선명하게

0개의 댓글