도커 컴포즈 기본

  • 도커 컴포즈는 여러 개의 Docker 컨테이너들을 관리하는 도구이다.
  • 도커 컴포즈는 도커 데스크탑 설치 시 기본으로 설치된다.
  • 한 번의 명령어로 여러 개의 컨테이너를 한번에 실행하거나 종료할 수 있다.
  • 로컬 개발환경에서 활용하기 편리하다.
  • 도커 컴포즈를 통해 관리할 컨테이너를 docker-compose.yml파일에 정의한다.

도커 컴포즈 명령어

  • docker compose up -d : YAML 파일에 정의된 서비스 생성 및 시작
  • docker compose ps : 현재 실행중인 서비스 상태 표시
  • docker compose build : 현재 실행중인 서비스의 이미지만 빌드
  • docker compose logs : 실행 중인 서비스의 로그 표시
  • docker compose down : YAML 파일에 정의된 서비스 종료 및 제거
  • docker compose up -d --build : 로컬에 이미지가 있어도 다시 이미지를 빌드

도커 컴포즈 실습(hitchecker)

image

  • hitchecker는 접속 시도 횟수를 외부 캐시 저장소인 Redis에 저장한다.
  • hitchecker가 종료 또는 재생성되어도 Redis에 접속 시도 회수가 저장되어 있다.
  • 도커 컴포즈를 사용해서 한번에 hitchecker, Redis 서버를 구성할 수 있다.

image image

  • hitchecker 프로그램을 작성한다.
  • hitchecker 프로그램에 레디스 접속 정보를 설정하여 연결한다.
  • ’/’경로 접근 시 Redis 캐시 값을 증가 시키고 증가된 값을 출력하도록 코드를 입력한다.
  • Dockerfile에는 애플리케이션 실행에 필요한 라이브러리를 설치하도록 작성한다.
  • yml파일에 services 아래에 hitchecker와 redis가 함께 관리되도록 설정한다.
  • hitchecker 컨테이너는 사용자가 개발할 애플리케이션이기 때문에 실행시 빌드가 필요하기 때문에 빌드 경로를 설정한다.
  • hitchecker에는 외부에서 포트포워딩 할 수 있도록 ports를 통해 포트를 설정한다.

도커 컴포스 활용

  • 도커 컴포즈를 통해 프론트엔드, 백엔드, 데이터베이스 컨테이너를 개발자 PC에 빠르게 구성할 수 있다.
  • 외부 모듈 개발자는 도커 컴포즈를 통해서 프로젝트의 소스코드가 없어도 환경을 빠르게 구동시킬 수 있다.