Docker - Docker Compose

우야·2021년 8월 12일
0

Multi Container사용시 좀 더 편한 방법은 없을까?

  1. Docker Compose를 사용하는것도 하나의 방법이 된다.
    • Multi Container Application을 정의하고 공유하는데 도움이 되도록 개발된 도구
    • Compose의 정의는 YAML을 생성할 수 있으며 단일 명령으로 사용가능
    • Multi container를 위한 network는 자동으로 생성됨
  2. Docker Compose 설치
$ docker-compose version
  1. 예제
    • Services안에 app, mysql두개의 container가 있음
    • container에는 image, ports, volumes, environment값을 정의
    • volumes에는 docker volume값 정의
version: "3.7"

services:
  app:
    image: node:12-alpine
    command: sh -c "yarn install && yarn run dev"
    ports:
      - 3000:3000
    working_dir: /app
    volumes:
      - ./:/app
    environment:
      MYSQL_HOST: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: secret
      MYSQL_DB: todos

  mysql:
    image: mysql:5.7
    volumes:
      - todo-mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: todos

volumes:
  todo-mysql-data:
  1. docker compose 실행
$ docker-compose up -d

 Creating network "app_default" with the default driver
 Creating volume "app_todo-mysql-data" with default driver
 Creating app_app_1   ... done
 Creating app_mysql_1 ... done
  1. docker compose 중지
$ docker-compose down

###볼륨을 제거하려면 --volumes플래그 를 추가###

$ docker-compose down --volumes
profile
Fullstack developer

0개의 댓글