docker-compose.yml 기본 파일 형식

A modern and sleek blog homepage layout featuring Docker Compose. The design should include elements such as YAML code snippets, container icons, network connections, and database symbols. The background should have a tech-inspired theme with a dark mode interface. The layout should be visually appealing, with a focus on simplicity and clarity, suitable for a blog about Docker Compose tutorials.

도커 컴포즈의 최신 버전 기준(3.8 또는 3.x 버전)에서 사용되는 docker-compose.yml 기본 파일 형식은 다음과 같습니다.

기본적인 docker-compose.yml 예제

version: "3.8"  # Docker Compose 파일 버전

services:
  web:  # 서비스 이름
    image: nginx:latest  # 사용할 도커 이미지
    container_name: my_nginx  # 컨테이너 이름
    ports:
      - "8080:80"  # 호스트 포트:컨테이너 포트
    volumes:
      - ./html:/usr/share/nginx/html  # 로컬 디렉토리를 컨테이너 내부와 연결
    restart: always  # 컨테이너 재시작 정책
    networks:
      - my_network  # 네트워크 설정

  db:
    image: mysql:latest
    container_name: my_mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: mydb
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql
    restart: unless-stopped

volumes:
  db_data:  # 볼륨 선언

networks:
  my_network:  # 사용자 정의 네트워크 설정


구성 요소 설명

  1. version
    • 도커 컴포즈 파일의 버전을 명시합니다. 최신 권장 버전은 "3.8"입니다.
  2. services
    • 각 컨테이너(서비스)를 정의하는 섹션입니다.
    • 위 예제에서는 web(Nginx)과 db(MySQL) 서비스가 있습니다.
  3. image
    • 사용할 Docker 이미지 이름을 지정합니다. (nginx:latest, mysql:latest 등)
  4. container_name
    • 컨테이너의 이름을 지정합니다. (지정하지 않으면 자동 생성됨)
  5. ports
    • 컨테이너와 호스트 간의 포트 매핑을 설정합니다. (호스트:컨테이너)
  6. volumes
    • 로컬 디렉토리와 컨테이너 내부 디렉토리를 연결하거나 데이터 보존을 위한 볼륨을 정의합니다.
  7. environment
    • 컨테이너에 전달할 환경 변수를 설정합니다.
  8. restart
    • 컨테이너가 언제 다시 시작될지 결정합니다.
    • always: 항상 재시작
    • unless-stopped: 수동으로 중지하지 않는 한 재시작
    • on-failure: 오류 발생 시 재시작
  9. networks
    • 서비스 간 통신을 위한 사용자 정의 네트워크를 설정할 수 있습니다.
  10. volumes
  • 데이터 지속성을 위한 볼륨을 생성하고 사용합니다.

실행 방법

  • 도커 컴포즈 실행: docker-compose up -d
  • 컨테이너 중지 및 삭제: docker-compose down
  • 실행 중인 컨테이너 확인: docker-compose ps

이 구성을 바탕으로 필요에 따라 추가 설정을 적용하면 됩니다.

Leave a Comment