인프런 커뮤니티 질문&답변
docker redis로 테스트하기
해결된 질문
작성
·
129
0
Slave Node 실행할 때,
docker redis로 실행해보고 싶은데 잘 안되어서 질문드립니다.
docker run --rm -p 6379:6379 -it redis:7.4docker run --rm -d -p 6380:6380 -v C:/Users/종현/redis_conf/redis_6380.conf -it redis:7.4docker run --rm -d -p 6381:6381 -v C:/Users/종현/redis_conf/redis_6381.conf -it redis:7.4이렇게 git bash에 입력 후 확인해 보니
컨테이너는 잘 떴습니다. 그런데 아래와 같이 슬레이브가 실행되지 않고 고유 redis로 실행된 것 같습니다.
Master Node (docker reids 기본)
2025-03-09 22:07:42 1:C 09 Mar 2025 13:07:42.395 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 2025-03-09 22:07:42 1:C 09 Mar 2025 13:07:42.395 * Redis version=7.4.2, bits=64, commit=00000000, modified=0, pid=1, just started 2025-03-09 22:07:42 1:C 09 Mar 2025 13:07:42.396 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 2025-03-09 22:07:42 1:M 09 Mar 2025 13:07:42.396 * monotonic clock: POSIX clock_gettime 2025-03-09 22:07:42 _._ 2025-03-09 22:07:42 _.-``__ ''-._ 2025-03-09 22:07:42 _.-`` `. `_. ''-._ Redis Community Edition 2025-03-09 22:07:42 .-`` .-```. ```\/ _.,_ ''-._ 7.4.2 (00000000/0) 64 bit 2025-03-09 22:07:42 ( ' , .-` | `, ) Running in standalone mode 2025-03-09 22:07:42 |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 2025-03-09 22:07:42 | `-._ `._ / _.-' | PID: 1 2025-03-09 22:07:42 `-._ `-._ `-./ _.-' _.-' 2025-03-09 22:07:42 |`-._`-._ `-.__.-' _.-'_.-'| 2025-03-09 22:07:42 | `-._`-._ _.-'_.-' | https://redis.io 2025-03-09 22:07:42 `-._ `-._`-.__.-'_.-' _.-' 2025-03-09 22:07:42 |`-._`-._ `-.__.-' _.-'_.-'| 2025-03-09 22:07:42 | `-._`-._ _.-'_.-' | 2025-03-09 22:07:42 `-._ `-._`-.__.-'_.-' _.-' 2025-03-09 22:07:42 `-._ `-.__.-' _.-' 2025-03-09 22:07:42 `-._ _.-' 2025-03-09 22:07:42 `-.__.-' 2025-03-09 22:07:42 2025-03-09 22:07:42 1:M 09 Mar 2025 13:07:42.397 * Server initialized 2025-03-09 22:07:42 1:M 09 Mar 2025 13:07:42.397 * Ready to accept connections tcpslave1
2025-03-09 22:07:43 1:C 09 Mar 2025 13:07:43.105 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 2025-03-09 22:07:43 1:C 09 Mar 2025 13:07:43.105 * Redis version=7.4.2, bits=64, commit=00000000, modified=0, pid=1, just started 2025-03-09 22:07:43 1:C 09 Mar 2025 13:07:43.105 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 2025-03-09 22:07:43 1:M 09 Mar 2025 13:07:43.105 * monotonic clock: POSIX clock_gettime 2025-03-09 22:07:43 _._ 2025-03-09 22:07:43 _.-``__ ''-._ 2025-03-09 22:07:43 _.-`` `. `_. ''-._ Redis Community Edition 2025-03-09 22:07:43 .-`` .-```. ```\/ _.,_ ''-._ 7.4.2 (00000000/0) 64 bit 2025-03-09 22:07:43 ( ' , .-` | `, ) Running in standalone mode 2025-03-09 22:07:43 |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 2025-03-09 22:07:43 | `-._ `._ / _.-' | PID: 1 2025-03-09 22:07:43 `-._ `-._ `-./ _.-' _.-' 2025-03-09 22:07:43 |`-._`-._ `-.__.-' _.-'_.-'| 2025-03-09 22:07:43 | `-._`-._ _.-'_.-' | https://redis.io 2025-03-09 22:07:43 `-._ `-._`-.__.-'_.-' _.-' 2025-03-09 22:07:43 |`-._`-._ `-.__.-' _.-'_.-'| 2025-03-09 22:07:43 | `-._`-._ _.-'_.-' | 2025-03-09 22:07:43 `-._ `-._`-.__.-'_.-' _.-' 2025-03-09 22:07:43 `-._ `-.__.-' _.-' 2025-03-09 22:07:43 `-._ _.-' 2025-03-09 22:07:43 `-.__.-' 2025-03-09 22:07:43 2025-03-09 22:07:43 1:M 09 Mar 2025 13:07:43.106 * Server initialized 2025-03-09 22:07:43 1:M 09 Mar 2025 13:07:43.106 * Ready to accept connections tcpreplicaof 127.0.0.1 6379 repl-ping-replica-period 10 repl-timeout 60 port 6380어떻게 해결해야 할까요?
Window, 로컬 redis는 설치X
답변 2
0
docker로 두개의 이미지를 구현하신다면, docker-compose를 사용하시는게 어떨까 싶습니다.
docker에 대해서 제가 지식이 완전 바삭한 부분은 아니라서.. 제가 알기로는 같은 네트워크를 공유해서 같은 자원을 사용하는 경우에 대해서도 고려가 되어야 하는걸로 알고 있습니다.
또한 추가로 설정하는 config같은 부분도 exec 명령어를 활용해 이미지로 접속하여 어떻게 구성이 되어 있는지 확인이 필요한걸로 보이고
아니면 DockerDesktop을 통해서 내부 설정값을 확인해보셔야 할 꺼 같습니다.
하지만 최선의 방법은
docker-compose를 통해서 같은 네트워크를 공유하게 설정하는게 좋지 않을까 싶습니다.
0
안녕하세요, 인프런 AI 인턴입니다. p22582님.
Docker를 사용하여 Redis Slave Node를 실행하려고 하시는군요. Master와 Slave 설정을 Docker에서 올바르게 수행하는 것은 Redis의 기본 구조를 이해하고 설정 파일을 잘 구성하는 것이 중요합니다. 아래는 일반적인 설정 과정에서 발생할 수 있는 문제 및 해결책입니다:
문제 설명
현재 redis-slave를 실행했을 때 기본 Redis로 동작하고 있는 것처럼 보이며, 슬레이브 설정이 제대로 반영되지 않은 상태로 보입니다. 이는 Slave의 Redis 설정 파일이 제대로 적용되지 않았기 때문에 발생할 수 있습니다.
해결 방법
Redis 설정 파일 확인:
redis_6380.conf파일에replicaof설정 등이 제대로 되어 있는지 확인합니다.
- 파일의 끝부분을 잘 살펴보세요. 종종 설정 파일의 맨 아래 부분을 수정을 잊거나 실수가 있을 수 있습니다.
볼륨 마운트 확인:
- Docker 커맨드에서
-v C:/Users/종현/redis_conf/redis_6380.conf:/usr/local/etc/redis/redis.conf형태로 설정 파일을 올바르게 마운트했는지 확인합니다. 윈도우 시스템에서는 경로 표기에 주의해야 합니다.
- Docker 커맨드에서
포트 및 IP 설정:
- Master Redis와의 연결을
replicaof 127.0.0.1 6379이런 식으로 설정했을 텐데, Docker 컨테이너에서는localhost나127.0.0.1대신 해당 컨테이너의 또는 Docker 네트워크 내부 IP 사용할 필요가 있을 수 있습니다.
- Master Redis와의 연결을
Docker Run 명령 재확인:
- 실행 중인
docker run명령이 컨테이너에 설정 파일을 제대로 전달하는지 재확인합니다.
- 실행 중인
추가 자료
관련해서 유사한 문제를 다룬 질문도 확인해보시면 도움이 될 수 있습니다:
- Redis와 Docker를 활용한 설정 문제 해결하기
- Redis 마스터/슬레이브 설정 이해하기
이러한 설정을 진행하신 이후에도 문제가 발생한다면, 구체적인 설정 파일 내용과 Docker의 로그를 함께 확인해 보시는 것이 좋습니다. 추가적으로 문제 해결이 필요하시면 질문을 남겨주세요. 지식공유자께서도 도와주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





