[Docker] Docker Compose
MSA 처럼 여러 가지 서비스들이 모여서 하나의 애플리케이션을 구성하거나, Frontend / Backend / Database 가 모여서 하나의 애플리케이션을 구성하는 경우에 애플리케이션을 도커로 배포하려면 각각의 서비스들을 컨테이너로 띄워야 한다.
각 서비스들을 띄울 때 docker container run 명령어를 하나씩 실행하고 있자니.. 너무 번거롭고 실수할 확률도 높아진다.
이렇게 여러 서비스들이 합쳐저 애플리케이션을 구성하는 형태의 애플리케이션을 도커로 배포할 때 도커 컴포즈를 사용한다.
version: '3.7'
services:
accesslog:
image: diamol/ch04-access-log
networks:
- app-net
iotd:
image: diamol/ch04-image-of-the-day
ports:
- "80"
networks:
- app-net
image-gallery:
image: diamol/ch04-image-gallery
ports:
- "8010:80"
depends_on:
- accesslog
- iotd
networks:
- app-net
networks:
app-net:
external:
name: nat
secrets:
...
version은 도커 컴포즈 파일 형식의 버전을 의미한다. (버전마다 문법이 다르다)
services에서는 애플리케이션을 구성하는 모든 요소들을 열거한다. (서비스 == 이미지 로 생각하면 된다)
depends_on 옵션으로 해당 서비스가 어떤 서비스에 의존하는지 명시할 수 있다.
networks에서는 서비스 컨테이너들이 연결될 모든 도커 네트워크를 열거한다. 여기서는 네트워크의 이름은 app-net 이고 external로 nat 네트워크가 이미 있으니 새로 생성하지 않음을 명시해줬다.
secrets에서는 컨테이너 내부의 파일에 기록될 비밀값을 정의한다. 암호나 인증서 등 민감한 정보를 다룰 때 사용한다.
도커 컴포즈 파일이 저장된 위치에서 docker-compose up 명령어를 입력하면 도커 컴포즈 파일을 실행된다.
도커 컴포즈를 사용하면 애플리케이션과 설정값을 분리할 수 있어 유용하다.
반응형
'DevOps > Docker && Kubernetes' 카테고리의 다른 글
[Docker] 네트워킹과 Docker Compose (1) | 2023.12.10 |
---|---|
[Docker] Dockerfile 프로젝트 배포하기 (2) | 2023.12.06 |
[Docker] 도커 파일 시스템과 볼륨 (0) | 2023.03.09 |
[Docker] 도커 활용하기 (0) | 2023.03.08 |
[Docker] 도커와 컨테이너 기술 (0) | 2023.03.07 |
댓글
이 글 공유하기
다른 글
-
[Docker] 네트워킹과 Docker Compose
[Docker] 네트워킹과 Docker Compose
2023.12.10 -
[Docker] Dockerfile 프로젝트 배포하기
[Docker] Dockerfile 프로젝트 배포하기
2023.12.06 -
[Docker] 도커 파일 시스템과 볼륨
[Docker] 도커 파일 시스템과 볼륨
2023.03.09 -
[Docker] 도커 활용하기
[Docker] 도커 활용하기
2023.03.08