BaeBox

Docker Compose (docker-compose) 본문

개발 관련

Docker Compose (docker-compose)

배모씨. 2019. 10. 23. 17:10
반응형

Compose : 다수의 컨테이너를 가지는 도커 어플리케이션을 정의하는 도구.(Compose is a tool for defining and running multi-container Docker applications.)

 

왜 쓸까??
* 컨테이너간 관계 정의(ex. 의존성).
* 도커 컨테이너 실행환경을 파일로 읽기 쉬운 파일로 저장하기 위해
* 개발 환경을 짤막하게 시작하기 위해 (ex. docker-compose up, docker stack deploy [app_name])

 

구성

비록 관계가 있지만, 별개의 특성을 가진 두 가지 툴로 구성됨.

* YAML-formatted file - solution option 을 명세
  - containers
  - networks
  - volumes

* CLI tool(docker-compose)
  - yaml 파일을 자동화. 

 

 

docker-compose.yml 이 기본 파일명이지만 docker-compose -f 를 사용하면 변경 가능. 

version: '3.1'

service:

    servicename#1:

      image: # optional

      command: # optional

      environment: # optional

      volumes # optional

    servicename#2: # if have second service...

volumes: # optional

network: # optional

 

 

version : 파일 규격 버전. 버전별 property가 다를 수 있ㅇ므

services : 실행하려는 컨테이너를 정의. 컴포즈는 컨테이너 대신 서비스라는 개념을 사용

volumes : 서비스에 host의 디렉토리를 mount

    ex) "host_dir:docker_dir:flag"

environment: 서비스의 환경변수

ports : 서비스에 포트포워딩

   1) 각 서비스의 ip가 다름

   2) 알려진 포트를 숨김으로 보안 향상

user : 서비스의 유저 설정. 사용자 id로도 이름으로 줘도 ok.

  ex) user_id:group_id

network: 네트워크 호스트 할당. 섲렁 자동적으로 dns가 됨. 

depends_on : 의존성있는 서비스 목록. compose_only

restart : 에러 OR 종료시 다시 시작하기 위한 옵션. compose_only

  - no (default), on_failure, always 세 가지?

deploy : ..스택의 설정? stack_only

  restart_policy : any (default), on_failure, none

 

반응형

'개발 관련' 카테고리의 다른 글

Docker - Persistent Data, Data Volumes & Bind Mounting  (0) 2019.10.23
Docker - Dockerfile  (0) 2019.10.23
Docker - Container  (0) 2019.10.23
Docker Image  (0) 2019.10.23
Docker Engine  (0) 2019.10.23
Comments