신입개발자

redis docker 실행 본문

개인 개발 공부

redis docker 실행

dks_a 2023. 8. 31. 13:28

1. standalone

version: '3.7'
services:
  redis:
    image: redis:7.0.4
    command: redis-server --port 1379
    container_name: redis_standalone
    hostname: 192.168.123.132 #docker hostname 설정 부분, 외부 접근도 가능
    ports:
      - 1379:1379 #서버 1379포트를 도커 1379포트로 바인딩

 

  • <docker-compose 명령어>
  • docker-compose -f [docker-compose.yml 파일 이름] up -d : 모든 서비스 컨테이너를 한번에 생성하고 실행

 

  • down : 모든 서비스 컨테이너를 한 번에 정지시키고 삭제
  • stop : 돌아가고 있는 특정 서비스 컨테이너를 정지시키기 위해 사용
  • start : 내려가있는 특정 서비스 컨테이너를 올리기 위해서 사용

 

 

Docker Compose 커맨드 사용법

Engineering Blog by Dale Seo

www.daleseo.com

 

 

 

2. sentinel

network 별도 설정이 없으면 default로 만들어서 제공/bridge로 연결

version: '3.7'
services:
    redis-6001:
      image: 'bitnami/redis:latest'
      container_name: redis-6001
      environment:
      #  - REDIS_REPLICA_IP=redis-6001
      #  - REDIS_REPLICA_PORT=6379
        - REDIS_REPLICATION_MODE=master
        - ALLOW_EMPTY_PASSWORD=yes
      ports:
        - 6001:6379
    redis-6002:
      image: 'bitnami/redis:latest'
      container_name: redis-6002
      #hostname: 192.168.123.132
      environment:
        - REDIS_MASTER_HOST=redis-6001
        - REDIS_MASTER_PORT_NUMBER=6379
       # - REDIS_REPLICA_IP=redis-6001
       # - REDIS_REPLICA_PORT=6002
        - REDIS_REPLICATION_MODE=slave
        - ALLOW_EMPTY_PASSWORD=yes
      ports:
        - 6002:6379
      depends_on:
        - redis-6001
    redis-6003:
      image: 'bitnami/redis:latest'
      container_name: redis-6003
      #hostname: 192.168.123.132
      environment:
        - REDIS_MASTER_HOST=redis-6001
        - REDIS_MASTER_PORT_NUMBER=6379
       # - REDIS_REPLICA_IP=redis-6001
       # - REDIS_REPLICA_PORT=6379
        - REDIS_REPLICATION_MODE=slave
        - ALLOW_EMPTY_PASSWORD=yes
      ports:
        - 6003:6379
      depends_on:
        - redis-6001
    sentinel16001:
      image: 'bitnami/redis-sentinel:latest'
      container_name: sentinel16001
      hostname: 192.168.123.132
      labels:
        - "name=redis-sentinel1"
        - "mode=sentinel"
      environment:
        - REDIS_MASTER_PORT_NUMBER=6379
        - REDIS_MASTER_HOST=redis-6001
        - REDIS_SENTINEL_PORT_NUMBER=26379
        - REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=3000
        - REDIS_MASTER_SET=migwmaster
        - REDIS_SENTINEL_QUORUM=2
      depends_on:
        - redis-6001
        - redis-6002
        - redis-6003
      ports:
        - 16001:26379
#      command: redis-sentinel /redis1/sentinel_16001.conf
    sentinel16002:
      image: 'bitnami/redis-sentinel:latest'
      container_name: sentinel16002
      hostname: 192.168.123.132
      labels:
        - "name=redis-sentinel2"
        - "mode=sentinel"
      environment:
        - REDIS_MASTER_PORT_NUMBER=6379
        - REDIS_MASTER_HOST=redis-6001
        - REDIS_SENTINEL_PORT_NUMBER=26379
        - REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=3000
        - REDIS_MASTER_SET=migwmaster
        - REDIS_SENTINEL_QUORUM=2
      depends_on:
        - redis-6001
        - redis-6002
        - redis-6003
      ports:
        - 16002:26379
    sentinel16003:
      image: 'bitnami/redis-sentinel:latest'
      container_name: sentinel16003
      hostname: 192.168.123.132
      labels:
        - "name=redis-sentinel3"
        - "mode=sentinel"
#      network_mode: "host"
      environment:
        - REDIS_MASTER_PORT_NUMBER=6379
        - REDIS_MASTER_HOST=redis-6001
        - REDIS_SENTINEL_PORT_NUMBER=26379
        - REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=3000
        - REDIS_MASTER_SET=migwmaster
        - REDIS_SENTINEL_QUORUM=2
      depends_on:
        - redis-6001
        - redis-6002
        - redis-6003
      ports:
        - 16003:26379
#      command: redis-sentinel /redis1/sentinel_16001.conf

 

  • image 별로 environment 옵션
  • docker hub에서 이미지 검색 후 옵션 확인

bitnami/redis:latest : https://hub.docker.com/r/bitnami/redis

 

Docker

 

hub.docker.com

 

bitnami/redis-sentinel:latest : https://hub.docker.com/r/bitnami/redis-sentinel

 

Docker

 

hub.docker.com

 

REDIS_REPLICATION_MODE : master/slave 설정

ALLOW_EMPTY_PASSWORD: password 지정 안함

REDIS_MASTER_HOST: master 호스트 설정 (도커 redis port)

REDIS_MASTER_PORT_NUMBER: master port 설정 (도커 redis ip)

REDIS_SENTINEL_PORT_NUMBER : sentinel port 설정(도커 sentinel port)

REDIS_MASTER_SET : redis의 master 이름 설정

REDIS_SENTINEL_QUORUM : sentinel이 몇 개 기준으로 찬성, 반대 투표할 것인지 설정

 

slave의 경우 depends_on으로 마스터 설정 필요 및 master port, ip 설정 필요

sentinel의 경우 depends_on으로 redis, slave 설정 필요 및 master port, ip 설정 필요

REDIS_REPLICA_* : replica 관련 설정 시 redis 편집 불가로 오류 발생

ports [외부 접속 포트] : [도커 내부 접속 포트]

'개인 개발 공부' 카테고리의 다른 글

gw-manger / portal docker 실행  (0) 2023.08.31
gateway docker 실행  (0) 2023.08.31
Dockerizing Your Spring Boot Application  (0) 2023.08.31
Docker  (0) 2023.08.31
패스트캠퍼스 Kafka 강의 1~2강 정리  (0) 2023.08.31
Comments