본문 바로가기
Docker Compose

docker-compose.yml 만들기

by 에어컨조아 2020. 6. 3.
version: '3.1'

services:
  database:
    image: mongo:4.2.6
    container_name: smartordb
    restart: always
    environment:
      MONGO_INITDB_DATABASE: admin
      MONGO_INITDB_ROOT_DATABASE: admin
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 1234
    volumes:
      - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
      - ./mongod.conf:/etc/mongod.conf
      - ../data:/data/db
    ports:
      - '27017:27017'

  app:
    container_name: smartorengine1
    build:
      context: .
      dockerfile: ./DockerFile
    environment:
      RoomNumber: 1
    image: engine:1.0
    depends_on:
      - db

위에서 본 docker-compose파일을 하나씩 내용을 정리해 보자.

docker-compose mongodb 설정

version

도커컴포즈는 버전별로 지원하는 명령어 등이 다름으로 command들이 버전에 해당하는지 확인하고 사용해야 한다.

service

도커컴포즈에서는 컨테이너란 용어 대신 serevice라는 용어로 사용하며 이는 컨테이너들을 명칭한다.

database

도커컨테이너의 이름을 말함

image

도커이미지를 말하며 이름과 만약 tag가 지정되어있다면 tag도 설정해야한다.

container_name

명령어 그대로 해당 컨테이너 이름

restart

프로그램 종료 시 자동 재시작 설정

environment

해당 컨테이너의 환경설정 값을 설정. 환경설정을 해두면 app들이 사용할 것임 여기서는 mongod가 해당 환경설정값을 기준으로 동작함.

volumes

상대경로를 지정하여 host pc와 컨테이너와의 연결시키는 명령어.
volume설정된 파일 중에서 한쪽이 변경되면 즉 host의 파일이 변경되거나 컨테이너의 파일이 변경되면 둘다 반영된다.

port

< host port > : < container port > host pc와 container port가 바인딩 시킨다.

댓글