Docker를 세팅하기 위해서 공부를 하다가 너무 어려워서
공식 홈페이지의 원문을 일부 읽으며 일부 번역하며 기록해둡니다.
(원문 : docs.docker.com/compose/ )
Docker Compose는 다수의 도커 컨테이너를 실행을 정의하는 툴입니다.
Docker Compose는 YAML 파일을 사용하여 Application을 세팅하는데
복잡한 다수의 도커 어플리케이션을 간단한 명령어를 통해 서비스 할 수 있게 해주는 툴입니다.
Docker Compose를 사용하는데는 하기와 같이 크게 세가지 단계로 이루어 집니다.
1. Dockerfile 을 이용하여 실행하는 어플리케이션의 환경변수를 정의합니다. 2. docker-compose.yml 파일을 이용하여 서비스하고자하는 어플리케이션을 구성합니다. 3. docker-compose up 명령어를 통해 전체 어플리케이션을 실행합니다. |
하기는 docker-compose.yml 파일의 예제입니다.
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: {}
Docker Compose 는 어플리케이션의 모든 lifecycle을 관리하게 됩니다.
- 서비스의 시작과 종료, 그리고 재구성
- 실행되는 서비스의 상태 확인
- 실행되는 서비스의 로그 출력
- 독립된 일회성의 서비스 실행
즉 Docker Service는 도커 서비스 실행의 구성을 한번에 실행하게 해주는
구성을 정의하는 툴이라고 볼 수 있습니다.
또한 Docker Service 를 통해 하나의 서버에서 다수의 독립된 환경을 구성할 수 있습니다.
- 개발서버에서, 다양한 환경변수를 고려하여 여러 카피의 프로젝트를 진행할 수 있습니다.
- CI 서버에서 각각의 빌드를 서로간의 간섭없이 관리할 수 있습니다.
- 호스트를 공유하는 경우 같은 이름을 가진 프로젝트끼리의 간섭을 방지할 수 있습니다.
Docker Service를 통해 실행한 어플리케이션의 volume data 는 새로운 Docker Service
실행시 유지되게 되며, 계속적으로 사용할 수 있습니다.