이 글은 Udemy의 "【한글자막】 Docker & Kubernetes : 실전 가이드" 강의의 학습 노트입니다.
https://www.udemy.com/course/docker-kubernetes-2022/
직전 섹션에서 했던 다중 컨테이너를 더욱 편리하게 관리하기 위해 docker-compose를 이용해서 다시 작성해본다.
하나의 호스트에서 사용하기 좋은 컨테이너 오케스트레이션 툴이다.
즉, 다중 컨테이너 설정을 더 쉽게 관리하고 동작시켜준다.
Dockerfile을 대체하는 개념이 아닌, 같이 사용하는 개념이다.
mac, window에서는 docker 설치 시 같이 설치되지만, linux의 경우에는 따로 직접 설치해줘야 한다.
기본적으로 yaml 파일 형식으로 탭을 통해 구분한다.
version: "3.8"
services:
mongodb:
image: "mongo"
volumes:
- data:/data/db
env_file:
- ./env/mongo.env
backend:
build: ./backend
ports:
- 80:80
volumes:
- ./backend/logs:/app/logs
env_file:
- ./env/backend.env
depends_on:
- mongodb
frontend:
build: ./frontend
ports:
- 3000:3000
stdin_open: true
tty: true
depends_on:
- backend
volumes:
data:
docker-compose up
을 통해 여러 개의 컨테이너를 전부 시작한다. -d 옵션을 붙이면 docker-compose 자체를 detached mode로 한다.
docker-compose down
을 통해 모든 컨테이너를 종료하고 네트워크도 지운다. 하지만 볼륨, 이미지는 남아있다. -v 옵션을 넣으면 볼륨도 지운다.
docker-compose up --build
: 이미지 리빌드 강제
docker-compose build
: 실행은 안하고 빌드만.
catainer_name:<name>
: 컨테이너 이름을 수동으로 지정가능