이슈 상황 및 원인
개발 시에 웹 서버는 docker 컨테이너로 띄우고, DB 는 docker 컨테이너나 외부DB 가 아닌 로컬의 DB 와 붙히고 싶은 경우가 있다.
그렇지만..
docker 의 localhost 와 머신의 localhost 는 다르다
docker 컨테이너 입장에서 localhost 는 자신 컨테이너를 가리키는 것이기 때문에 localhost 로는 우리 머신의 로컬DB 와 연결이 안 된다.
이슈 해결
방법은 생각보다 간단한데, host 명을 localhost 대신 host.docker.internal 를 사용하면 해결된다.
예를 들어 .env 환경변수에서 정의한 DB HOST 명을 localhost 에서 host.docker.internal 로 변경하면 된다.
참고