본문 바로가기

About/Docker

[Docker] docker-compose.yml의 개요

docker-compose.yml의 개요

Docker Compose는 'docker-compose.yml'이라는 Compose 정의 파일에 시스템 안에서 가동하는 여러 서버들의 구성을 모아서 정의합니다.

이 정의 파일은 YAML 형식으로 기술합니다.

YAML

YAML은 구조화된 데이터를 표현하기 위한 데이터 포맷으로 Python과 동일하게 들여쓰기로 데이터의 계층 구조를 나타냄. 들여쓰기는 탭이 아니라 스페이스를 사용함. 읽기가 쉬워 설정 파일 등에 많이 이용됨

YAML에서는 데이터의 맨 앞에 '-'를 붙이면 배열을 나타냄. '-'

Compose 정의 파일에는 여러 컨테이너의 설정 내용을 모아서 하나의 파일에 기술합니다. 이 Compose 정의 파일에는 관리하고 싶은 컨테이너의 서비스(services:), 네트워크(networks:), 볼륨(volumes:)을 정의합니다.

또한 Compose 정의 파일은 버전에 따라 기술할 수 있는 항목이 다릅니다.

Compose 정의 파일과 버전 Docker Engine의 버전
3.3 17.06.0
3.2 17.04.0
3.1 1.13.1
3.0 1.13.0
2.3 17.06.0
2.1 1.12.0
2.0 1.10.0
1.0 1.9.1

다음 예시는 webserver라는 서비스와 redis라는 이름의 서비스를 만들고 들여쓰기를 하여 각각의 컨테이너 상세 정보를 설정합니다.

'#' 문자 이후에는 주석을 나타내므로 알기 쉬운 설명을 넣어둘 것을 권장합니다.

docker-compose.yml 파일의 예시
#서비스 정의
services:
  webserver:
    image: ubuntu
    ports:
      - "80:80"
    networks:
      - webnet

  redis:
    image: redis
    networks:
      -webnet

# 네트워크 정의
networks:
  webnet:

# 데이터 볼륨 정의
volumes:
  data-volume:

docker-compose.yml 파일에 대하여 알아보았습니다.

다음 도서를 참고하여 작성하였습니다.

www.aladin.co.kr/shop/wproduct.aspx?ItemId=166082298

 

완벽한 IT 인프라 구축을 위한 Docker

컨테이너 기술을 사용한 애플리케이션 실행 환경 플랫폼인 ‘Docker’를 사용하여 인프라를 구축하기 위한 입문서. 제2판에서는 Docker의 새로운 기능 및 명령과 더불어, 멀티호스트 환경에서 실행

www.aladin.co.kr