ec2에 docker-compose로 스프링을 띄우고, ec2 로컬에 실행한 redis와 연결이 안되고 있다.
application.yml에 작성한 redis의 호스트인 localhost(127.0.0.1)의 주소와 docker의 로컬 호스트 주소가 다르기 때문이다.
redis:
host: localhost
port: 6379
host에 localhost 대신에 host.docker.internal로 수정한다.
=>실패
docker redis network를 구축한뒤 실행된 도커 컨테이너와 연결해준다
=>실패
extra_hosts:
- "host.docker.internal:host-gateway"
application.yml의 host를 host.docker.internal로 수정해준다.
redis:
host: host.docker.internal
port: 6379
redis 컨테이너를 host 모드로 띄운다.(Linux에서만 가능하다)
docker run --name redis --net host -v /data/redis:/data -d redis:alpine
(성공)
이 외에도 localhost 대신에 172.17.0.1를 작성하는 방법도 있지만, 컨테이너가 종료되었다가 다시 시작하면 아이피 주소가 바뀔 가능성이 있기 때문에 권하진 않는다.