docker-compose

choko's avatar
Jun 29, 2024
docker-compose

docker-compose

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

docker-compose.yaml

  • docker-compose.yml은 장황한 도커 실행 옵션을 미리 적어둔 문서이다.
  • 프로젝트 루트에 파일을 만들고, 실행 설정을 적어준다. 그래야 터미널에서 도커 명령어를 사용하여 컨테이너를 실행하거나 죽일 수 있다.
 
notion image
 
 

실행/중지 명령어

$ 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

Tom의 TIL 정리방