docker-compose.yaml
파일을 사용해 애플리케이션의 서비스들을 구성한다.yaml
파일로 여러 개의 도커 내부 속성을 설정하고, yaml
파일을 실행해 여러 개의 도커를 한번에 실행한다.docker-compose.yaml
파일을 생성하고 그 안에 서비스들을 정의한다.서비스
는 간단하게 도커 컨테이너
라고 볼 수 있다.Dockerfile
은 각 도커 컨테이너마다 존재해야 한다.예를 들어 두 Dockerfile이 있다.
Dockerfile
Dockerfile.mongo
Dockerfile
FROM node:14
COPY ./package.json /myfolder/
COPY ./yarn.lock /myfolder/
WORKDIR /myfolder/
RUN yarn install
COPY . /myfolder/
CMD yarn start:dev
Dockerfile.mongo
FROM mongo:5
Dockerfile
을 구성한 후 docker-compose.yaml
파일을 작성한다.
docker-compose.yaml
version: "3.7"
# 컨테이너들
services:
# express 서버 구동 컨테이너 이름
my-backend:
build:
context: .
dockerfile: Dockerfile
ports:
- 4000:4000
# mongoDB 서버 구동 컨테이너 이름
my-database:
build:
context: .
dockerfile: Dockerfile.mongo
ports:
- 27017:27017
services
my-backend
, my-database
를 설정함context
Dockerfile
을 포함하는 디렉터리 경로Dockerfile
과 docker-compose.yaml
이 같은 경로에 위치함dockerfile
Dockerfile
지정ports
docker-compose build
를 사용해 도커 이미지를 빌드한다.
docker-compose build
docker-compose up
를 사용하면 docker-compose build
로 빌드한 두 개의 이미지가 동시에 실행된다.
docker-compose up
결과적으로 docker-compose
로 빌드한 express 서버 구동 컨테이너와 mongoDB 서버 구동 컨테이너가 동시에 실행된다.