도커 컴포즈는 시스템 구축과 관련된 명령어를 하나의 텍스트 파일에 기재해, 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한번에 하도록 도와주는 도구이다.
시스템 구축에 필요한 설정을 YAML 포맷으로 기재한 파일을 이용해 시스템을 일괄 실행, 종료, 삭제 할 수 있다.
Dockerfile vs Docker Compose
- 도커 컴포즈 파일은 컨테이너와 주변 환경을 생성하고 네트워크와 볼률까지 함께 만들 수 있다.
- Dockerfile은 이미지를 만들 뿐 네트워크나 볼률은 만들 수 없다.
도커 컴포즈 vs 쿠버네티스(Kubernetes)
- 쿠버네티스 : 컨테이너를 관리하는 기능
- 도커컴포즈 : 컨테이너를 생성 및 삭제, 컨테이너 관리 기능 없음
설치방법 : https://docs.docker.com/compose/install/
도커 데스크톱은 도커 컴포즈가 함께 설치되기 때문에 도커 데스크톱을 설치했다면 별도로 설치할 필요가 없습니다.
설치 확인을 위해서 도커 컴포즈 버전을 확인합니다.

파일의 이름은 미리 정해진 docker-compose.yml 이라는 이름을 사용해야 합니다.
파일은 폴더에 하나만 존재해야하고 여러개의 컴포즈 파일을 생성하는 경우 개수만큼 폴더를 생성해야합니다. 또한, 컨테이너 생성에 필요한 이미지 파일은 컴포즈가 사용할 폴더 안에 둬야합니다.
docker-compose.yml 파일 예시
version: '3.2'
services:
testService:
container_name: test
image: test:latest
restart: always
ports:
- "13777:13777"
#volumes:
#networks:
# default:
# external:
# name:
version
컴포즈 파일의 버전을 적는다.
services
컨테이너 관련 정보를 작성하고 컨테이너 정보는 여러개를 작성할 수 있다.
작성 내용
testService : 서비스 이름
container_name : 실행할 컨테이너 이름
image : 실행할 이미지 파일
restart : 컨테이너 종료 시 재시작 여부를 설정
ports : 포트 설정
기존 실행
docker run -d -p 13777:13777 --name=test test:latest
기존 종료
docker ps -a : 작동중인 컨테이너 ID 확인
docker stop [종료할려고 하는 컨테이너 ID]
docker rm [종료할려고 하는 컨테이너 ID]
docker ps -a : 실행중인 컨테이너 확인
docker rm을 하지 않으면 동일한 이름으로 컨테이너를 다시 run 할 수 없음
도커 컴포즈 실행
docker-compose up

docker-compose up : 실행
docker-compose up -d : background 실행
docker-compose ps : 실행중인 컨테이너 확인
도커 컴포즈 종료
docker-compose down
