Docker-compose

이재홍·2022년 3월 13일
0

Docker-compose

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할 때,

  • context : Dockerfile을 포함하는 디렉토리 경로 또는 git repo의 url입니다.
  • dockerfile : Dockerfile을 대체하는 파일을 지정해 줍니다. (Dockerfile.mongo 등)

ports : 실행할 때 포트포워딩 해줍니다.

volumes : yarn dev(nodemon index.js)로 실행을 했지만 로컬의 소스코드를 변경한다고 해서 도커의 소스코드가 변경된게 아니므로 서버가 재실행되지 않습니다.
따라서 서버를 재실행 해주기 위해 로컬의 소스코드가 바뀌면 도커의 소스코드로 자동으로 옮기기 위해 volumes를 사용합니다.

docker-compose 명령어

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는 삭제 따로)

0개의 댓글