Docker-Compose

박나진·2024년 6월 19일
0

Docker

목록 보기
7/7

Docker-Compose란?

  • Docker-Compose는 다중 컨테이너 애플리케이션을 정의하고 실행하기 위한 도구
  • YAML 파일을 사용하여 애플리케이션의 서비스, 네트워크, 볼륨 등을 선언적으로 구성
  • 복잡한 애플리케이션을 쉽게 배포하고 관리할 수 있도록 도와줌

Docker-Compose 파일 작성 방법

  1. 서비스 정의

    • services 섹션에서 각 컨테이너 서비스를 정의
    • 서비스별로 이미지, 포트, 환경 변수 등을 설정
  2. 네트워크 구성

    • networks 섹션에서 애플리케이션 내부 네트워크를 정의
    • 서비스 간 통신을 위한 네트워크 연결 설정
  3. 볼륨 설정

    • volumes 섹션에서 영구 저장소인 볼륨을 정의
    • 컨테이너와 호스트 간 데이터 공유를 위한 볼륨 설정
  4. 기타 옵션

    • version 필드로 Docker-Compose 파일 버전 지정
    • restart 정책, 리소스 제한, 종속성 등 다양한 옵션 설정 가능

Docker-Compose 사용 방법

  1. Docker-Compose 파일 작성

    • 애플리케이션 구성을 YAML 형식으로 작성
  2. 애플리케이션 실행

    • docker-compose up 명령어로 애플리케이션 실행
    • -d 옵션을 추가하면 백그라운드로 실행
  3. 애플리케이션 관리

    • docker-compose down 명령어로 애플리케이션 중지
    • docker-compose ps 명령어로 실행 중인 서비스 확인
    • docker-compose logs 명령어로 로그 확인

YAML 파일 생성 및 작성 예시

version: '3'

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    networks:
      - frontend

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password
    volumes:
      - db-data:/var/lib/mysql
    networks:
      - backend

  redis:
    image: redis:latest
    networks:
      - backend

volumes:
  db-data:

networks:
  frontend:
  backend:
  
  • version: '3': Docker-Compose 파일 버전을 지정
  • services: 애플리케이션을 구성하는 각 서비스를 정의
    • web: Nginx 웹 서버 서비스
    • db: MySQL 데이터베이스 서비스
    • redis: Redis 캐시 서비스
  • volumes: 영구 저장소인 볼륨 정의
  • networks: 애플리케이션 내부 네트워크 정의

Docker-Compose 주요 명령어

  • up: 애플리케이션 실행
  • down: 애플리케이션 중지
  • ps: 실행 중인 서비스 확인
  • logs: 로그 확인
  • build: 이미지 빌드
  • pull: 이미지 다운로드
  • start, stop, restart: 서비스 시작, 중지, 재시작
profile
백엔드 개발자

0개의 댓글