[Docker] Docker-compose 정리

황수홍·2024년 7월 19일

Docker compose 란?

여러 개의 Docker 컨테이너들을 Docker 애플리케이션으로 정의하고 실행하는 도구입니다. YAML 파일을 사용해 애플리케이션의 서비스, 네트워크, 볼륨 등을 정의할 수 있으며, 단일 명령어로 애플리케이션을 시작하고 관리할 수 있습니다.

Docker Compose를 사용하기 위한 단계

  1. Docker Compose 파일 작성: YAML 형식으로 작성된 Docker Compose 파일을 사용해 서비스와 관련 설정들을 정의.
  2. Docker Compose 실행: docker-compose up 명령어를 사용하여 Docker Compose 파일에 정의된 서비스들을 시작.
  3. 실행 및 관리 : 실행된 서비스를 확인하고 관리하기 위해 docker-compose ps, docker-compose log, docker-compose exec 등의 명령어를 사용한다.
  4. 중지 및 정리 : 작업을 완료한 후 docker-compose down 명령어를 사용하여 Docker Compose 파일에 정의된 서비스들을 중지하고 관련 컨테이너들을 삭제.

Docker Compose를 사용하는 이유

예를 들어 Django와 MySQL을 같이 사용하는 경우를 보자.

  1. 먼저 MySQL 컨테이너를 실행시킨다.
  2. Django 컨테이너를 실행시킨다.(--link 옵션으로 이전에 생성한 MySQL과 연결)

각각의 컨테이너를 따로 실행해야 해서 굉장히 번거롭다.

이번에는 Docker Compose 파일을 사용하면 어떻게 되는지 보자.

각 항목별 설명

  • version:'3' : Docker Compose 파일의 버전.
  • services : Docker Compose에서 관리할 서비스들의 목록을 정의.
    • web : 첫 번째 서비스로, 장고 이미지를 사용
    • db : 두 번째 서비스로, MySQL 데이터베이스 이미지를 사용

이 설정 파일을 사용하여 docker-compose up 명령을 실행하면, Django와 MySQL이 연결된 멀티 컨테이너 환경이 구동된다.

Docker Compose 명령어

  1. docker-compose up
  • 모든 서비스를 빌드하고 시작합니다.
  • '-d' 옵션을 사용하면 백그라운드에서 실행됩니다.
  1. docker-compose down
  • 모든 서비스를 중지하고 네트워크, 볼륨 등을 제거합니다.
  1. docker-compose build
  • 모든 서비스를 빌드합니다.
  1. docker-compose ps
  • 현재 실행 중인 모든 컨테이너를 나열합니다.
  1. docker-compose logs
  • 서비스의 로그를 출력합니다.
  1. docker-compose exec
  • 실행 중인 컨테이너 안에서 명령어를 실행합니다.
profile
대한민국 최고의 개발자(희망)

0개의 댓글