Docker 컨테이너에서 localhost와 통신하기

kshired·2022년 8월 7일
1
post-thumbnail

Docker 컨테이너에서 localhost를 지정하여 통신을 할 때, 가끔 제대로 된 동작이 안되는 경우가 있습니다.

이럴때, 만약 같은 Docker 컨테이너끼리라면 docker에서 network를 생성해서 container 이름끼리 호출을하면 문제없이 해결을 할 수 있습니다.

하지만, host에 있는 일반 프로세스에 대한 요청을 해야할때는 localhost라고 지정하게 된다면 제대로 된 동작을 하지 않습니다.

이럴 때는 간단하게, 아래 세가지 방법을 택할 수 있습니다.

  1. localhost를 host.docker.internal 로 교체하면 해결가능합니다. ( Mac, Window 가능, Linux일 때는 --add-host host.docker.internal:host-gateway 을 추가하고 사용 가능 )
  2. --network="host" 모드로 컨테이너를 실행하면 됩니다. ( Linux 가능 )
  3. --network="bridge" 모드 ( 기본 )로 실행시킨다면, localhost를 172.17.0.1로 쓰면 됩니다.

세가지 방법을 알아봤는데, 제일 간단한 방법은 1번 host.docker.internal인 것 같습니다.

문제 해결!

profile
글 쓰는 개발자

0개의 댓글