[Docker] Section 6 - 다중 컨테이너 어플리케이션 오케스트레이션
다중 컨테이너 어플리케이션 오케스트레이션
- 이전 다중 컨테이너 어플리케이션에서는 환경 구축을 위해서는 많은 설정을 거쳐야 했으나, 보다 쉽게 이러한 구성(Compose)를 할 수 있다.
Docker Compose
- 이전 섹션에서 배웠던 다양한 명령어들을 한 파일에서 구성(Configure) 및 관리할 수 있다.
- Dockerfile, 이미지나 컨테이너 등을 대체하는 이미지가 아니다.
- 여러 호스트에 운용되는 다중 컨테이너 환경에서는 적합하지 않다.
- (동일 호스트에서 관리되어야 한다.)
- 거의 모든 터미널 명령어를 이 곳에서 관리할 수 있다.
파일 생성하기
docker-compose.yaml
파일에 다중 컨테이너의 환경, 프로젝트 설정 등을 기재한다.- 항상 docker version을 기재하는 것으로 시작한다.
- 공식 문서에서 각 버전에 대응하는 다양한 옵션을 확인할 수 있다.
services
: 각 컨테이너에 대응된다.image
: 각 컨테이너에 사용하려는 이미지를 정의한다.build
: 컨테이너에서 사용할 이미지를 빌드할 위치를 지정한다. (Dockerfile의 위치)- dockerfile의 이름 및 위치를 정의하는 것 또한 가능하다.
volume
: 컨테이너의 볼륨을 정의한다.environment
: 컨테이너의 환경 변수를 정의한다.env-file
: 환경 변수가 정의된 파일을 지정한다.(상대 경로)port
: 실행할 포트 번호를 지정할 수 있다.depends_on
: 각 컨테이너간 의존성을 명시할 수 있다.stdin_open
: 컨테이너가 입력을 받아들일 수 있게 한다.tty
: 표준 입출력을 터미널과 연결할 수 있도록 한다.
- 디폴트 네트워크가 자동 생성되므로, 네트워크를 정의할 필요가 없다. (필요시 옵션을 주어 지정하는 것 또한 가능하다.)
- Compose로 정의된 컨테이너는 도커에서는 자동 생성된 이름을 가지며, 서비스에서 정의된 이름으로 도커에 번역되어 전달될 수 있다.
Compose file 실행 및 중지
docker-compose up
: docker compose 파일에 정의된 모든 작업들이 수행된다. (디폴트로 attached로 실행, -d 옵션 가능)docker-compose down
: up 명령어로 실행 중이던 도커를 중지한다.
Leave a comment