-
[Docker] Docker로 Redis Cluster, P3X Redis UI 설치(docker-compose.yml)Docker 2022. 11. 15. 14:35반응형
1. Redis 컨테이너 이미지 가져오기
docker pull redis
2. P3X Redis UI 컨테이너 이미지 가져오기
docker pull patrikx3/p3x-redis-ui
3. docker-compose 파일 생성
# compose 파일 버전 version: "3" services: # 서비스명 # Redis Cluster 설정 redis-cluster: # 사용할 이미지 image: redis:latest # 컨테이너명 설정 container_name: redis-cluster # 접근 포트 설정 (컨테이너 외부:컨테이너 내부) ports: - "6001:6001" - "6002:6002" - "6003:6003" # 환경 변수 설정 volumes: - ./config/redis/redis-cluster.conf:/usr/local/etc/redis.conf # 명령어 설정 command: redis-server /usr/local/etc/redis.conf # Redis Node1 설정 redis-node1: network_mode: "service:redis-cluster" image: redis:latest container_name: redis-node1 volumes: - ./redis-node1.conf:/usr/local/etc/redis.conf command: redis-server /usr/local/etc/redis.conf # Redis Node1 설정 redis-node2: network_mode: "service:redis-cluster" image: redis:latest container_name: redis-node2 volumes: - ./redis-node2.conf:/usr/local/etc/redis.conf command: redis-server /usr/local/etc/redis.conf # Redis Node1 설정 redis-node3: network_mode: "service:redis-cluster" image: redis:latest container_name: redis-node3 volumes: - ./redis-node3.conf:/usr/local/etc/redis.conf command: redis-server /usr/local/etc/redis.conf # Redis Cluster Entry 설정 redis-cluster-entry: network_mode: "service:redis-cluster" image: redis:latest container_name: redis-cluster-entry command: redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 --cluster-yes depends_on: - redis-cluster - redis-node1 - redis-node2 - redis-node3 # P3X Redis UI 설정 registry: image: patrikx3/p3x-redis-ui:latest restart: always container_name: p3x-redis-ui ports: - "7843:7843" volumes: - ./settings:/settings
4. redis.conf 파일 생성
docker-compose.yml 파일과 동일한 위치에 redis-node마다 redis.conf 파일을 생성
클러스터 설정 파일
cluster-enabled <yes/no>
- 클러스터 모드로 실행할지 여부를 결정
cluster-config-file <filename>
- 해당 노드의 클러스터를 유지하기 위한 설정을 저장하는 파일
cluster-node-timeout <milliseconds>
- 클러스터 노드가 다운되었는지 판단하는 시간
- 해당 시간 동안 감지되지 않는 마스터는 레플리카에 의해 장애 조지(failover)를 진행
redis-node1.conf
port 6001 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 3000 appendonly yes
redis-node2.conf
port 6002 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 3000 appendonly yes
redis-node3.conf
port 6003 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 3000 appendonly yes
5. docker-compose 파일 실행
5_1. docker-compose 파일이 저장된 위치로 이동
cd 파일이 저장된 위치
5_2. docker-compose 실행
docker-compose up -d
5_3. docker-compose 중지
docker-compose stop
6. PostgreSQL 컨테이너, 이미지 관련 명령어
6_1. 컨테이너 시작
docker start redis-cluster docker start redis-node1 docker start redis-node2 docker start redis-node3 docker start redis-cluster-entry docker start p3x-redis-ui
6_2. 컨테이너 중지
docker stop redis-cluster docker stop redis-node1 docker stop redis-node2 docker stop redis-node3 docker stop redis-cluster-entry docker stop p3x-redis-ui
6_3. 컨테이너 재시작
docker restart redis-cluster docker restart redis-node1 docker restart redis-node2 docker restart redis-node3 docker restart redis-cluster-entry docker restart p3x-redis-ui
6_4. 컨테이너 삭제
docker rm redis-cluster docker rm redis-node1 docker rm redis-node2 docker rm redis-node3 docker rm redis-cluster-entry docker rm p3x-redis-ui
6_5. 이미지 삭제
docker rmi redis docker rmi patrikx3/p3x-redis-ui
7. Redis 컨테이너에 접속
docker exec -it redis-cluster /bin/bash
8. Redis 컨테이너에서 Redis-cli 실행
redis-cli
9. Redis 커맨드 사용
set test_key test_value get test_key
10. p3x-redis-ui 접속
10_1. 브라우저에서 localhost:7843를 입력하면 p3x-redis-ui 화면이 출력
10_2. SETTINGS > NEW CONNECTION을 선택한 접속 정보를 입력
- HostName은 container_name을 입력
- Port는 posts를 입력
Docker 기본 명령어 - https://tychejin.tistory.com/359
반응형'Docker' 카테고리의 다른 글
[Docker] Docker로 PostgreSQL, pgAdmin 4 설치(docker-compose.yml) (0) 2022.10.21 [Docker] Docker로 MySQL 설치(docker-compose.yml) (0) 2022.09.11 [Docker] Docker로 Kafka-UI 설치(docker-compose.yml) (0) 2022.08.23 [Docker] Docker로 PostgreSQL 설치(docker-compose.yml) (0) 2022.05.20 [Docker] Docker로 Zookeeper, kafka 설치(docker-compose.yml) (0) 2022.03.21