Docker - Docker Compose

Docker

개요

Compose : 구성하다

Docker Compose다중 컨테이너 애플리케이션을 정의하고 공유할 수 있도록 개발된 도구입니다. compose라는 단어의 뜻에서 알 수 있듯 애플리케이션을 구성하는 도구로 생각하면 됩니다.

docker-compose.yml 파일을 통해 configure을 설정하고, 단일 명령어로 서비스를 실행 및 종료할 수 있습니다.

Compose를 사용하면 file에서 애플리케이션의 스택을 정의하고, repository의 root에 파일을 저장하여 공유할 수 있습니다. 또한 production, staging, development, testing, CI 환경에서 모두 사용이 가능합니다.


Compose 파일 생성

  1. 프로젝트의 root 디렉토리에 docker-compose.yml 파일을 생성합니다.

  2. (version) Schema version을 정의합니다.

  3. (services) 애플리케이션을 구성하는 서비스, 컨테이너 목록을 설정합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: "3.9"  # optional since v1.27.0
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}

속성

  • version : 스키마 버전
  • services : 하위에 애플리케이션을 구성하는 서비스 설정
  • app, mysql 등 : 어플리케이션, 서비스 정의 (네트워크 별칭과 동일)
  • image : docker image
  • command : 명령어 (순서가 고정된 것은 아니지만 image와 가까운 곳에 기입한다.)
  • ports : 포트
  • working_dir : 작업 디렉토리
  • volumes : 볼륨 매핑
    • docker run으로 실행 시 명명된 볼륨이 자동 생성되지만, compose는 개별적으로 정의해주어야 한다.
  • environment : 환경 변수
    • MYSQL_HOST: mysql 과 같이 key-value쌍으로 기입한다.

사용 방법

  1. 이식성과 재사용성을 높일 수 있도록 Dockerfile로 환경설정을 한다..

  2. 독립된 환경에서 돌아갈 수 있도록 앱을 구성하는 서비스를 docker-compose.yml에 정의한다.

  3. docker compose up이나 docker-compose up을 실행하여 모든 app을 실행시킨다.

참고

Author

Inwoo Jeong

Posted on

2022-01-12

Updated on

2022-01-13

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.

댓글