docker-compose.yml?
- 컨테이너화도딘 여러 서비스를 정의하고 관리하기 위한 구성 파일
- YAML 형식으로 작성되며, 애플리케이션 환경을 코드로 표현하여 쉽게 복제 가능
docker-compose.yml 장점
- 여러 컨테이너를 한 번에 실행 및 관리 가능
- 네트워크, 볼륨 등 관련 리소스를 자동으로 설정
- 개발 환경에서 프로덕션 환경으로 쉽게 전환 가능
docker-compose.yml 주요 구성 요소
- version
- services
- 애플리케이션의 각 컨테이너 정의
- 각 서비스는 별도의 Docker 컨테이너 실행
- image
- build
- 이미지를 직접 빌드할 경우, Dockerfile의 경로 지정
- ports
- volumes
- 데이터 공유를 위한 볼륨을 정의하고 마운트
- 전역으로 볼륨을 정의하고 사용 가능
- depends_on
- networks
예제
- Nginx와 Mysql로 구성된 간단한 웹 애플리케이션 예제
version: "3.9"
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: secret
version: "3.9"
services:
web:
build:
context: .
ports:
- "5000:5000"
volumes:
- "./app:/app"
db:
image: postgres:13
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password