docker container로 띄운 redis에 접속해보니, 아래와 같은 로그가 찍혀 있었다.
뭔가 이 redis가 slave 노드이고, master에 접속하려고 하지만 안되고 있다는 뜻인거 같은데
레디스 클러스터를 구성하지 않고 한 대 쓰고 있었기에 저런게 뜨는게 너무 이상했다
열심히 자료를 찾아봐도 레디스 클러스터를 구성하는 과정에서 저런 에러가 발생했다는 글밖에 찾을 수 없었는데,
가장 원인 같아 보이는 stackoverflow 페이지를 하나 찾을 수 있었다.
https://stackoverflow.com/questions/57738563/redis-running-on-docker-shuts-down-after-some-time
Redis running on Docker shuts down after some time
I got a very simple environment that uses Redis on Docker and it used to work pretty well until I moved my stack to Digital Ocean. My application stops working and then I have to restart it. It wor...
stackoverflow.com
위 질문자처럼, 나도 docker-compose.yml 파일에서 redis의 외부 포트를 열어주었는데
이 외부 포트로 다른 사람이 접속할 수 있다는 것 같다.. 그리고 이걸 지워도 다른 컨테이너와 레디스 컨테이너가 통신할 수 있다는 것 같아서 이부분을 삭제해보았고, 정상적으로 연결되는 것을 확인할 수 있었다.
docker network
외부포트를 열어주지 않아도 연결이 잘되는 이유는 아마도 docker network 때문일 것 같다.
spring container와 redis container를 띄우기 위한 docker-compose 파일에서 아래 사진과 같이 network를 만들어주었는데,
둘이 같은 브릿지 네트워크에 속해 있기 때문에, 외부포트를 열어주지 않아도 브릿지를 통해 통신할 수 있는 것 같다.
"docker network ls" 명령어를 통해 현재 만들어져 있는 docker network들을 볼수 있다.
그리고 "docker network inspect [네트워크이름]" 명령어를 통해서 네트워크의 세부정보를 볼 수 있다.
참고로 docker의 network에는 bridge, host, none이 있는데,
그중 bridge는 bridge를 통해 서로 다른 컨테이너가 통신할 수 있도록 하는, 도커 네트워크 중 가장 간단한 방식이라는 것 같다.
Reference
https://stackoverflow.com/questions/57738563/redis-running-on-docker-shuts-down-after-some-time
Redis running on Docker shuts down after some time
I got a very simple environment that uses Redis on Docker and it used to work pretty well until I moved my stack to Digital Ocean. My application stops working and then I have to restart it. It wor...
stackoverflow.com
Docker Network, 제대로 이해하기 (2)
📌 Docker SeriesDocker Engine, 제대로 이해하기 (1) - docker engine deep diveDocker Engine, 제대로 이해하기 (2) - namespace, cgroupDocker Network, 제대로 이해하기 (1) - libnetwork> Docker Network, 제대로 이해하기 (2) - b
gngsn.tistory.com
'프로젝트 기록 > Architecture, Infra, CICD' 카테고리의 다른 글
-
[MSA / Spring Cloud] Spring Cloud MSA 프로젝트에서 CORS 설정에 대해 (feat. 403 error)2024.10.03
-
[Spring Cloud] MSA 구조에서 요청이 처리되지 않는 문제 (Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException)2024.09.28
-
[CI/CD] Jenkins로 스프링 부트 프로젝트 비공개 파일 관리와 빌드 스크립트 작성2024.05.07
-
[Project / AWS] EC2와 RDS로 스프링 API 서버 배포하기2024.05.04