Over the limit
[Docker] Docker compose 본문
도커 컴포즈는 컨테이너 여럿을 띄우는 도커 애플리케이션을 정의하고 실행하는 도구(Tool for defining and running multi-container Docker applications) 이다.
여러 개의 컨테이너가 하나의 애플리케이션으로 동작할 때, 이를 테스트하려면 각 컨테이너를 하나씩 생성해야 한다.
여러 개의 컨테이너로 구성된 애플리케이션을 구축하기 위해서 run 명령어를 여러 번 사용할 수 있지만, 테스트 단계에서는 매번 run 명령어에 옵션을 설정해서 진행하기에 번거로움이 있다.
이를 위해 도커 컴포즈는 YAML 파일을 통해 여러 개의 컨테이너의 실행을 한 번에 관리하여 하나의 프로젝트처럼 다룰 수 있는 환경을 제공한다.
속성
- version
docker compose의 파일 포맷 버전을 지정한다.
기본적으로 버전 3을 사용하는 것이 일반적이다.- services
서비스의 이름- image
docker container의 이름을 정의한다.
Docker Hub에 있는 이미지를 사용하여 docker container를 작성할 경우 image를 설정할 수 있다.- restart
docker container가 다운되었을 경우, 항상 재시작하라는 설정이다.- volumnes
docker run 명령의 -v 옵션과 동일한 역할을 한다.
여러 개의 volume을 지정할 수 있으며 리스트처럼 작성하면 된다.- environment
dockerfile의 ENV 옵션과 동일한 역할을 한다.
참고로, env_file 옵션으로 환경변수 값이 들어있는 파일을 읽을 수도 있다. (패스워드 등의 보안을 위한 방법)- ports
docker run 명령의 -p 옵션과 동일한 역할을 한다.- build
docker image를 Dockerfile 기반으로 작성 시 사용한다.- build
docker image를 Dockerfile 기반으로 작성 시 사용한다.- depends_on
컨테이너가 실행되는 순서를 제어
app 안에 " depend_on : - db " 설정이 있는 경우, 우선적으로 db 컨테이너가 먼저 실행되고 그 후에 app컨테이너가 실행되어 app 컨테이너가 db 컨테이너로 접속을 시도하도록 컨테이너 실행 순서를 제어하는 것이다.
docker-compose 명령어
# 컨테이너 실행
docker-compose up -d // 도커 백그라운드 실행
docker-compose up --force-recreate // 도커 컨테이너 새로 만들기
docker-compose up --build // 도커 이미지 빌드 후 compose up
# 컨테이너 내리기
docker-compose down // 컨테이너 stop & 삭제
docker-compose stop
참고)
'Devops > Docker' 카테고리의 다른 글
[Docker] Dockerfile에 대해 (1) | 2024.10.17 |
---|---|
[Docker] Docker에 Tomcat 설치하기 (3) | 2024.10.14 |
[Docker] Docker와 Kubernetes 비교 (1) | 2024.07.10 |
[Docker] 윈도우에 도커 설치 (0) | 2024.07.06 |