Docker-compose
란 복수 개의 컨테이너를 실행시키는 도커 애플리케이션이 정의를 하기 위한 툴입니다.
기본적으로YAML 파일
을 사용하여 애플리케이션의 서비스를 구성할 수 있습니다.
즉YAML 파일
로 여러 개의 docker 내부 속성을 설정하고YAML 파일
을 실행시켜 마치 docker를 배치로 한 번에 실행시키는 것과 같다고 생각하시면 됩니다.
version: '3.3'
services:
my_backend:
build:
context: .
dockerfile: Dockerfile
ports:
- 3001:3001
volumes:
- ./index.js:/myfolder/index.js
my_database:
image: mongo:latest
ports:
- 27017:27017
컨테이너를 build할 때,
ports : 실행할 때 포트포워딩 해줍니다.
volumes : yarn dev(nodemon index.js)로 실행을 했지만 로컬의 소스코드를 변경한다고 해서 도커의 소스코드가 변경된게 아니므로 서버가 재실행되지 않습니다.
따라서 서버를 재실행 해주기 위해 로컬의 소스코드가 바뀌면 도커의 소스코드로 자동으로 옮기기 위해 volumes를 사용합니다.
docker-compose build : 빌드(패키징)
docker-compose up : 실행
docker-compose stop : 실행 중 컨테이너 중단 (또는 ctrl + c)
docker-compose down : 컨테이너 완전 제거
docker-compose up my_backend : 골라서 실행 (중단/제거 마찬가지)
docker system prune -a: docker 초기화 (volumes는 삭제 따로)