티스토리 뷰
Udemy Docker & Kubernetes : 실전 가이드 정리
2025.02.10 - [CS/Cloud, Intra] - Docker: 컨테이너를 왜 쓰는가? / Image & Container (1)
2025.02.17 - [CS/Cloud, Intra] - Docker: Image & Container 관리 (2)
2025.02.24 - [CS/Cloud, Intra] - Docker: Volume
2025.03.03 - [CS/Cloud, Intra] - Docker: Network
Docker Compose
정의 및 특징
다중 컨테이너 관리 도구
Dockerfile 을 대체하진 않음
하나의 구성파일로 동일한 호스트에서 한 개 이상의 컨테이너 환경을 설정함
한 docker compose 으로 정의된 모든 컨테이너들은 디폴트 네트워크가 생성됨
명령어
docker compose build : 이미지 빌드
docker compose up -d : detach모드로 컴포즈 실행
docker compose up --build: 이미지 재빌드하며 실행
docker compose down : 컨테이너 종료 및 이미지 삭제
docker compose down -v : volume 과 함께 컨테이너 삭제
docker-compose.yaml 예제
## docker-compose.yaml (example)
services: # contaner
mongodb:
image: 'mongo'
volumes:
- data:/data/db
# container_name: 원하는 컨테이너 이름
# environment:
# KEY: value
env_file:
- <path>
backend:
build: ./backend # dockefile 이 있는 경로, 코드 변경이 있을 때마다 리빌드
# build:
# context: ./backend
# dockefile: Dockerfile # dockerfile 이름
# args:
# some-arg: value
ports:
- '80:80'
voluems:
- logs:/app/logs
- ./backend:/app # 바운드 마운트
- /app/node_modules # 익명 볼륭
env_file:
- ./env/backend.env
depends_on: # 서비스 의존성
- mongodb
frontend:
build: ./frontend
ports:
- '3000:3000'
volumes:
- ./frontend/src:/app/src
stdin_open: true # 개방형 입력 연력 (docker run 에서 -i)
tty: true # 터미널 연결 (docker run 에서 -t)
depends_on:
- backend # backend가 시작되어야 frontend 시작
volumes: # 명명된 볼륨
data:
logs:
※ 최신 docker version 에서는 version 을 명시하지 않아도 됨
cf. https://forums.docker.com/t/docker-compose-yml-version-is-obsolete/141313
유틸리티 컨테이너
ENTRYPOINT
권한 & Linux
'CS > Cloud, Intra' 카테고리의 다른 글
[Docker] AWS에서 컨테이너 배포하기 (1) - EC2 (0) | 2025.03.24 |
---|---|
[Docker] Network (0) | 2025.03.03 |
[Docker] Volume (0) | 2025.02.24 |
댓글