RabbitMQ Docker Compose로 띄우기

정한빈·2022년 3월 1일
2
post-thumbnail
version: '3'
services:
  rabbitmq:
    image: rabbitmq:3-management-alpine
    container_name: rabbitmq-stream
    volumes:
      - ./.docker/rabbitmq/etc/:/etc/rabbitmq/
      - ./.docker/rabbitmq/data/:/var/lib/rabbitmq/
      - ./.docker/rabbitmq/logs/:/var/log/rabbitmq/
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      RABBITMQ_ERLANG_COOKIE: "RabbitMQ-My-Cookies"
      RABBITMQ_DEFAULT_USER: "admin"
      RABBITMQ_DEFAULT_PASS: "rabbitpassword"

docker-compose.yml 파일은 위와 같다. 옵션별로 무엇을 의미하는지 알아보자


image: rabbitmq:3-management-alpine

rabbitmq 이미지중에 3-management-alpine 버전을 선택하겠다는 의미이다. 3-management-alpine 버전은 두가지 특징이 있다

  • management : 관리자 UI를 사용할 수 있게 해주는 management plugin이 설치되어 있는 이미지이다. 기본 관리자 username/passwdguest/guest 이다
  • alpine : 경량 리눅스 배포판 이미지, 사용하는 이유는 링크에 자세히 설명되어 있다.

volumes:
  - ./.docker/rabbitmq/etc/:/etc/rabbitmq/
  - ./.docker/rabbitmq/data/:/var/lib/rabbitmq/
  - ./.docker/rabbitmq/logs/:/var/log/rabbitmq/

volumes 는 도커 컨테이너는 실행 후 컨테이너를 삭제하면 존재하던 데이터가 모두 사라지게 되기 때문에 마운트를 해주는데, 이에 필요한 옵션이다.

만약 ./.docker/rabbitmq/etc/:/etc/rabbitmq/ 이라면 로컬의 ./.docker/rabbitmq/etc/디렉토리를 컨테이너의 /etc/rabbitmq/ 디렉토리와 마운트 하겠다는 의미이다.

한줄 한줄 마운트한 이유를 설명하자면

  • ./.docker/rabbitmq/etc/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf : RabbitMQ configuration 파일을 설정하기 위함
  • ./.docker/rabbitmq/data/:/var/lib/rabbitmq/ : RabbitMQ 데이터에 접근하기 위함
  • ./.docker/rabbitmq/logs/:/var/log/rabbitmq/ : RabbitMQ 로그에 접근하기 위함

environment:
  RABBITMQ_ERLANG_COOKIE: "RabbitMQ-My-Cookies"
  RABBITMQ_DEFAULT_USER: "admin"
  RABBITMQ_DEFAULT_PASS: "rabbitpassword"

컨테이너 내부의 환경 변수를 설정하는 옵션이다.

  • RABBITMQ_ERLANG_COOKIE : RabbitMQ 클러스터를 구성할 때 노드끼리 동일하게 맞춰줘야 하는 값
  • RABBITMQ_DEFAULT_USER : management UI 에서 로그인 username
  • RABBITMQ_DEFAULT_PASS : management UI 에서 로그인 password

ref.

https://zgadzaj.com/development/docker/docker-compose/containers/rabbitmq

0개의 댓글