Docker 생태계에서 애플리케이션을 정의하고 관리하는 데 매우 중요한 파일이다.
Dockerfile은 Docker 이미지를 빌드하기 위해 사용되는 파일이다.
애플리케이션을 컨테이너화하여서 배포 or 실행하려면, Docker 이미지가 있어야 하는데, Dockerfile을 사용하여 이미지를 위한 모든 의존성, 환경 설정, 실행 명령어 등을 지정할 수 있다.
- Docker 이미지의 구성 요소를 정의한다.
- 각 명령어는 이미지의 새로운 계층을 형성하는데, 이미지의 변경 사항을 효율적으로 관리할 수 있다.
- 이미지를 빌드한 후, 이미지를 다른 환경에서도 동일하게 사용할 수 있다.
# 베이스 이미지 지정
FROM python:3.8-slim-buster
# 작업 디렉토리를 설정
WORKDIR /app
# 의존성 파일을 복사하고 설치
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 소스 코드 복사
COPY . .
# 컨테이너 시작 시 실행할 명령어
CMD ["python", "app.py"]
docker-compose.yml 파일은 여러 Docker 컨테이너를 정의하고 동시에 실행하기 위해 사용한다. MSA나 복잡한 애플리케이션의 경우 여러 컨테이너가 필요할 수 있는데, 이러한 컨테이너를 관리하고, 네트워크 설정과 볼륨 마운트를 손쉽게 구성할 수 있다.
- 여러 컨테이너를 하나의 파일로 정의하고, 한 번의 명령으로 실행할 수 있다.
- 각 컨테이너를 서비스로 정의하고, 의존성을 설정할 수 있다.
- 환경 변수, 볼륨, 네트워크 설정 등을 쉽게 정의할 수 있다.
- 동일한 설정을 다양한 환경에 적용할 수 있다.
version: '3'
services:
postgres:
image: postgres:latest
container_name: postgres_container
environment:
POSTGRES_USER: 1234
POSTGRES_PASSWORD: 1234
POSTGRES_DB: databases
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
'🔥스파르타 TIL (Docker)' 카테고리의 다른 글
Docker 제대로 시작하기 (0) | 2025.02.27 |
---|---|
Docker를 배워보자 (0) | 2025.02.22 |
CI/CD와 Docker 란? (1) | 2025.02.10 |