Docker Compose란? → 여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴
예전에는 환경변수도 -e로 길게 작성하고 호스트 컴퓨터의 파일위치와 컨테이너의 파일위치도 적어줘야하는 등 실행시키려면 굉장히 긴 명령어를 작성해야 한다!
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql
너무 복잡하다!! docker compose를 제대로 알면
단순히 docker compose up 명령어만 실행시키면 된다.
그렇다면 이제 docker compose에 대해 알아보자!!
우리는 여태까지 컨테이너 이름은 webserver이고 백그라운드, 80 호스트포워딩하며 nginx를 실행시키려면 아래와 같이 길게 작성을 해야했을 것이다!
$ docker run --name webserver -d -p 80:80 nginx
근데 파일 루트단에 compose.yml을 추가하여 아래와 같이 쓸 수 있다!! yml 특성상 들여쓰기로 해석을 구분하니 차근차근 읽어보면 위의 명령어와 아래의 compose 파일 설정이 같은 것을 이해 할 수 있다!
services:
  my-web-server: // 서비스 이름
    container_name: webserver // 컨테이너 이름
    image: nginx // 이미지
    ports: // 포트 매핑 설정
      - 80:80

그러면 위와 같이 compose.yml 파일 설정해놓고? 아래 명령어를 실행하자!
$ docker compose up // compose로 compose.yml 설정 파일 기반으로 컨테이너 포그라운드 실행
$ docker compose up -d // 백그라운드 실행
$ docker compose down // compose로 실행한 컨테이너 중지시키고 삭제까지 해줌!! 귀찮게 rm 할필요가 없네!!