Contents
docker-compose docker-compose
- Docker compose란, 여러 개의 컨테이너로부터 이루어진 서비스를 구축, 실행하는 순서를 자동으로 하여, 관리를 간단히하는 기능이다.
- YAML 파일을 사용하여 애플리케이션의 서비스를 구성할 수 있음.
- 다중 컨테이너 애플리케이션을 정의하고 공유할 수 있도록 개발된 도구.
- compose에서 서비스를 정의하는 YAML 파일을 만들고, 단일 명령을 사용하여 모두 실행하거나 종료할 수 있음.
- 파일에서 애플리케이션 스택을 정의하고 프로젝트 repository 루트에 파일을 저장하여 다른 사용자가 프로젝트에 참여하기 쉽게 만들 수 있다.
docker-compose.yaml
- docker-compose.yml은 장황한 도커 실행 옵션을 미리 적어둔 문서이다.
- 프로젝트 루트에 파일을 만들고, 실행 설정을 적어준다. 그래야 터미널에서 도커 명령어를 사용하여 컨테이너를 실행하거나 죽일 수 있다.

실행/중지 명령어
$ docker-compose up # 도커 컴포즈 실행
$ docker-compose up -d # 백그라운드로 실행
$ docker-compose -p my-project up -d # 백그라운드로 my-project이름으로 실행
$ docker-compose stop # 서비스를 잠시 중지, 내부 데이터 남아있음
$ docker-compose down # 컨테이너가 아예 제거됨, 초기화 상태가 됨
docker-compose.yaml 예시
version: '3'
# Replace network name with the fabric test-network name
services:
redis:
image: redis
command: ['--maxmemory-policy','noeviction','--requirepass','${REDIS_PASS}']
ports:
- 6379:6379
volumes:
- redis_data:/data
networks:
- fabric_test
postgres:
image: postgres
ports:
- 5432:5432
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASS}
- POSTGRES_INITDB_ARGS=--encoding=UTF-8
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- fabric_test
volumes:
redis_data:
postgres_data:
networks:
fabric_test:
external: true
- Redis와 Postgresql의 docker-compose 예시
Share article