본문 바로가기

Docker

docker-compose로 로컬에서 MySQL + Redis + Kafka 한번에 구성하기

 

혼자 개발 & 테스트할 때, 로컬 MySQL, Redis, Kafka 서버를 구성하기란 너무 귀찮다!

처음엔 `brew services start mysql` 로 껐다 켰다... 🫠

Mac Apple Silicon (M1) 환경에서 Docker compose로 한 번에 구성할 수 있도록 기록하려고 한다

 

1. Docker 다운 & 실행

아래 URL에서 Mac with Apple Silicon 버전의 Docker Desktop을 다운받는다.

Docker Compose까지 포함되어있으니 이게 젤 쉬운 방법이라고 생각한다. 공식문서에서도 맞다구 한다..


The easiest and recommended way to get Docker Compose is to install Docker Desktop. Docker Desktop includes Docker Compose along with Docker Engine and Docker CLI which are Compose prerequisites.

 

https://docs.docker.com/desktop/install/mac-install/

 

Install Docker Desktop on Mac

Install Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.

docs.docker.com

 

 

2.  docker-compose.yml 파일 생성

프로젝트 별로 리소스 구성이 달라질 수도 있을 것 같아 나는 개인 스프링 프로젝트 루트 하위에다가 생성했다.

version: '3'
services:
  mysql:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=1234   # 루트계정
      - MYSQL_DATABASE=test        # 기본 DB
    ports:
      - "3306:3306"
    volumes:
      - ./my-db-init-scripts:/docker-entrypoint-initdb.d # (옵션) DB 스크립트
  redis:
    image: redis:latest
    ports:
      - "6379:6379"
    environment:
      - REDIS_HOST=localhost
      - REDIS_PORT=6379
  zookeeper:
    image: zookeeper
    container_name: zookeeper-server
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    platform: linux/amd64 # 맥실리콘
    container_name: kafka-server
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: localhost
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

 

3. docker compose 실행

docker desktop에서 내 리소스들 (mysql, kafka&zookeeper, redis) 이 잘 실행되는지 확인한다.

docker compose up

 

4. 리소스 확인

4-1. MySQL

BASH를 통해 확인할 수도 있지만, 그냥 workbench나 Datagrip (or 인텔리제이) 쓰는 게 가장 편하다!

 

✅ 인텔리제이에서 접속

 

 

✅ BASH를 통해 접속

mysql -u root -p

 

 

4-2. Redis

마찬가지로 CLI를 사용하거나, Medis/RedisInsight 같은 프로그램을 사용하거나 그냥 인텔리제이에서 접속해도 된다.

 

✅ 인텔리제이에서 접속

 

 

4-3. Kafka

마찬가지로 가장 편한 방법인... 인텔리제이로 테스트하는 것을 추천한다.

인텔리제이 플러그인 중 'Kafka'를 설치한다.

 

✅ 플러그인 설치

 

 

✅ 접속

 

✅ 토픽 생성

 

✅ 토픽 프로듀싱

 

✅ 토픽 컨슈밍

 

 

끝! 참 쉽죠잉