Docker-compose.yml 구성 요소 사용법

Smart-JYS
4 min readMar 11, 2020

--

Docker compose 파일에서 사용되는 모듈에 대해서 확인 해보도록 하겠습니다.

Docker compose 사용 방법

위 링크에서 사용했던 docker-compose.yml로 추가로 설명 하도록 하겠습니다.

docker-compose.yml

version: '3'services:
package-product:
build: ./package
volumes:
- ./package:/usr/src/app
ports:
- 8180:80
company:
image: php:apache
volumes:
- ./company:/var/www/html/
ports:
- 8080:80
depends_on:
- package-product

File system

$ tree tour
tour
├── company
│ └── index.php
├── docker-compose.yml
└── package
├── api.py
├── Dockerfile
└── requirements.txt

1. version

  • docker-compose 문서에 대한 버전을 지정합니다. 버전에 따라 조금씩 기능과 옵션이 다를 수 있습니다. 자세한 내용은 문서를 링크하도록 하겠습니다.

2. services

  • 컨테이너를 실행하기 위해 정의 합니다. 컨테이너는 곧 서비스라는 개념으로 접근하시면 됩니다.

3. Container name (package_product, company)

  • services 내부에 컨테이너의 이름을 지정합니다. docker-compse ps 에서 name을 입니다.
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------
tour_company_1 docker-php-entrypoint apac ... Up 0.0.0.0:8080->80/tcp
tour_package-product_1 python api.py Up 0.0.0.0:8180->80/tcp
  • 실제 서비스 명은 — services 옵션으로 확인이 가능합니다.
$ docker-compose ps --services
package-product
company

4. image

  • 컨테이너에 사용될 이미지 입니다. 위 예제에서는 company의 image는 php:apache가 사용되었습니다.

5. build

  • Dockerfile빌드하기 위해서 Dockerfile이 있는 경로를 지정합니다.

6. dockerfile

  • 위 예제에는 없지만 dockerfile명이 Dockerfile이 아닐 경우 파일명을 지정합니다.

7. restart

  • no: 수동으로 재시작 합니다.
  • always: 컨테이너를 수동으로 끄기전까지 항상 재시작 됩니다.
  • on-failure: 오류가 있을 시에 재시작합니다.

8. environment

  • 환경 변수를 설정합니다.

9. ports

  • 호스트와 컨테이너 포트를 설정합니다. Dockerfile에서 expose와 동일합니다.

10. volumes

  • 지정한 경로의 볼륨을 마운트 합니다.

11. depends_on

  • services 간 종속을 설정합니다.
  • company 서비스는 package-product에 종속되어 있습니다.

--

--

Smart-JYS

자신이 하는 일을 잘 이해할수록 그 일을 더 잘한다.