발생 현상 : 터미널에서 입력한 Redis Key 값 'hello'가 RedisInsight에서 조회되지 않는 현상
원인 조사
6379 포트를 호스트 머신과 Docker의 Redis 컨테이너 양쪽이 사용하고 있는 상태를 netstat -ano | findstr :6379 으로 확인
C:\\Users\\Chae>netstat -ano | findstr :6379
TCP 0.0.0.0:6379 0.0.0.0:0 LISTENING 3592
TCP 0.0.0.0:6379 0.0.0.0:0 LISTENING 22624
TCP 127.0.0.1:6379 127.0.0.1:52729 ESTABLISHED 22624
TCP 127.0.0.1:6379 127.0.0.1:60349 ESTABLISHED 22624
TCP 127.0.0.1:6379 127.0.0.1:63312 ESTABLISHED 22624
TCP 127.0.0.1:52729 127.0.0.1:6379 ESTABLISHED 3592
TCP 127.0.0.1:60349 127.0.0.1:6379 ESTABLISHED 3592
TCP 127.0.0.1:63312 127.0.0.1:6379 ESTABLISHED 3592
TCP [::]:6379 [::]:0 LISTENING 22624
TCP [::]:6379 [::]:0 LISTENING 3592
Docker 컨테이너는 각각 독립된 환경에서 실행되는 구조이므로 docker-compose를 썼던 경험처럼 서로 네트워크가 연결되어있지 않음
C:\\Users\\Chae>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
98c375cff440 redis/redisinsight:latest "./docker-entry.sh n…" 2 hours ago Up 2 hours 0.0.0.0:5540->5540/tcp, [::]:5540->5540/tcp redisinsight
e93f44f05192 redis:latest "docker-entrypoint.s…" 43 hours ago Up About an hour 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp redis
근본 원인
host.docker.internal:6379로 접속하면 호스트 머신(Windows)의 Redis에 연결됨docker exec로 접속하면 Docker Redis에 연결됨해결 방법 : Docker의 network를 생성해서 Redis와 RedisInsight를 같은 네트워크로 연결되도록 설정하고, RedisInsight에서 Host 주소를 Docker의 Redis 컨테이너로 연결할 수 있도록 redis라는 컨테이너 이름으로 수정
