Docker

Docker compose 사용법

제주니어 2023. 12. 24. 20:36

Docker compose

Docker Compose는 여러 컨테이너화된 애플리케이션을 정의하고 실행하기 위한 도구이다.

간단히 말해, Docker Compose를 사용하면 여러 Docker 컨테이너로 구성된 애플리케이션을 쉽게 관리하고 조정할 수 있다.

 

docker-compose.yml

 

Docker Compose는 docker-compose.yml이라는 YAML 형식의 파일을 사용한다.

이 파일에서는 애플리케이션을 구성하는 서비스, 네트워크, 볼륨 등을 정의할 수 있다. 

 

version: '3.8'

services:
  web:
    image: my-web-app:latest
    ports:
      - "5000:5000"
    depends_on:
      - db
    environment:
      DATABASE_URL: "db:3306"
    networks:
      - app-network

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db-data:/var/lib/mysql
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

volumes:
  db-data:

 

  • 버전 (Version)
    • version: 사용하는 Docker Compose 파일 형식의 버전을 명시하며, 위 경우 3.8 버전을 사용하고 있으며, 이는 Docker Compose 기능과 호환성을 결정
  • 서비스 (Service)
    • services: 여러 서비스(컨테이너)를 정의
    • 웹 서비스
      • web: 웹 애플리케이션 서버의 서비스 이름
      • image: 사용할 Docker 이미지를 지정, 여기서는 my-web-app:latest라는 이미지를 사용
      • ports: 컨테이너 포트와 호스트 포트를 매핑. 5000:5000은 컨테이너의 5000번 포트를 호스트의 5000번 포트에 연결(컨테이너 외부:컨테이너 내부) 
      • depends_on: 이 서비스가 시작되기 전에 시작되어야 할 다른 서비스를 명시한다. 여기서는 db 서비스가 먼저 시작되어야 함을 나타냄
      • environment: 컨테이너 내에서 사용될 환경 변수를 설정, DATABASE_URL에 db:3306을 설정하여 데이터베이스 서버의 위치와 포트를 지정
        networks: 이 서비스가 속할 네트워크를 지정. 여기서는 app-network를 사용.
    • 데이터베이스 서비스
      • db: 데이터베이스 서버의 서비스 이름
      • image: 사용할 Docker 이미지를 지정, 여기서는 mysql:5.7 이미지를 사용
      • environment: 환경 변수를 설정, MYSQL_ROOT_PASSWORD에 데이터베이스의 루트 비밀번호를 설정
      • volumes: 데이터를 영구적으로 저장할 볼륨을 매핑, db-data 볼륨을 컨테이너의 /var/lib/mysql 경로에 연결
      • networks: app-network 네트워크에 속하도록 설정
  • 네트워크 (Networks)
    • networks: 서비스 간 통신에 사용될 네트워크를 정의
    • app-network: 사용할 네트워크의 이름
    • driver: 네트워크 드라이버를 지정, bridge는 가장 일반적인 드라이버 유형으로, 독립된 서브넷에서 컨테이너를 실행하고, 물리적 네트워크와 연결하기 위한 브리지를 생성
  • 볼륨 (Volumes)
    • volumes: 데이터를 영구적으로 저장하기 위한 볼륨을 정의
    • db-data: 사용할 볼륨의 이름, 이 볼륨은 db 서비스에서 MySQL 데이터를 저장하는 데 사용

 

docker-compose 실행하기

 

  • docker-compose 파일이 저장된 위치로 이동
  • docker-compose 실행
docker-compose up -d

 

'Docker' 카테고리의 다른 글

docker-compose 로 mysql 설치하기  (0) 2023.12.27