1. Docker 개념 정리
2. Docker 명령어
3. Docker 통신하기
4. Dockerfile 작성하기
6. Docker 이미지 생성 및 저장하기
Docker Compose
Docker Compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기 위한 도구이다.
이 전까지는 하나의 컨테이너를 다루는 방법에 대해서 정리를 했는데 실제 서비스에서는 여러 컨테이너가 서로 상호작용을 하는 경우가 대부분이다. 이 때 하나하나 컨테이너를 생성하고 실행하는 것이 아닌 다중 컨테이너를 정의하고 실행을 지원해주는 것이 Docker Compose이다.
Compose 파일은 yaml 형식으로 작성하는 파일이다.
Docker Compose 구조
Docker Compose를 작성할 때 자주 사용되는 구조이다.
- services : 관리하고 싶은 서비스 목록을 구성할 수 있다.
- network : 여러 서비스에서 재사용할 수 있는 명명된 네트워크를 구성할 수 있다.
- volume : 여러 서비스에서 재사용할 수 있는 명명된 볼륨을 구성할 수 있다.
Services Level 구조
Docker Compose 구조 중 Servies 레벨에서 자주 사용되는 구조를 정리해보았다.
- image : 컨테이너 이미지를 정의
- build : 위 'image'를 활용하는 방식이 아닌 dockerfile의 경로를 지정해 빌드
- dockerfile : 빌드할 dockerfile의 이름이 'dockerfile'이 아닌 경우 명시적으로 지정
- ports : 호스트와 컨테이너의 포트 바인딩 설정
- volumes : 호스트의 지정된 경로로 컨테이너 볼륨을 마운트하도록 설정
- container_name : 컨테이너 이름을 설정
- command : 컨테이너 실행 후 컨테이너의 쉘에서 실행시킬 명령어 설정
- environment : 환경변수 설정
- depends_on : 다른 컨테이너와의 의존관계를 설정
- restart : 컨테이너의 재시작과 관련하여 설정
Docker Compose 실행
작성된 Docker Compose 파일을 실행하려면 docker-compose up 명령어를 사용한다.
추가 옵션
- f : docker-compose는 기본적으로 파일 이름이 'docker-compose.yml' 또는 'docker-compose.yaml' 이름을 사용하는데 이 밖에 이름을 사용할 때 명시적으로 지정
- d : 백그라운드에서 docker-compose를 실행하기 위해 사용
참고 문서 및 링크