Study/개발일지
[백엔드TIL] Docker 설정하면서 트러블슈팅(74일차)
아이바
2023. 9. 12. 20:40
[문제상황]
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를 구축한뒤 실행된 도커 컨테이너와 연결해준다
=>실패
[해결]
- docker-compose.yml에 아래 extra_hosts를 추가해준뒤
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를 작성하는 방법도 있지만, 컨테이너가 종료되었다가 다시 시작하면 아이피 주소가 바뀔 가능성이 있기 때문에 권하진 않는다.
728x90