작성
·
29
0
Slave Node 실행할 때,
docker redis로 실행해보고 싶은데 잘 안되어서 질문드립니다.
docker run --rm -p 6379:6379 -it redis:7.4
docker run --rm -d -p 6380:6380 -v C:/Users/종현/redis_conf/redis_6380.conf -it redis:7.4
docker 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 tcp
slave1
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 tcp
replicaof 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
설정 등이 제대로 되어 있는지 확인합니다.볼륨 마운트 확인:
-v C:/Users/종현/redis_conf/redis_6380.conf:/usr/local/etc/redis/redis.conf
형태로 설정 파일을 올바르게 마운트했는지 확인합니다. 윈도우 시스템에서는 경로 표기에 주의해야 합니다.포트 및 IP 설정:
replicaof 127.0.0.1 6379
이런 식으로 설정했을 텐데, Docker 컨테이너에서는 localhost
나 127.0.0.1
대신 해당 컨테이너의 또는 Docker 네트워크 내부 IP 사용할 필요가 있을 수 있습니다.Docker Run 명령 재확인:
docker run
명령이 컨테이너에 설정 파일을 제대로 전달하는지 재확인합니다.관련해서 유사한 문제를 다룬 질문도 확인해보시면 도움이 될 수 있습니다:
- Redis와 Docker를 활용한 설정 문제 해결하기
- Redis 마스터/슬레이브 설정 이해하기
이러한 설정을 진행하신 이후에도 문제가 발생한다면, 구체적인 설정 파일 내용과 Docker의 로그를 함께 확인해 보시는 것이 좋습니다. 추가적으로 문제 해결이 필요하시면 질문을 남겨주세요. 지식공유자께서도 도와주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.