728x90
도커 컨테이너에서 localhost를 실행하면 컨테이너 내의 localhost이므로 PC의 localhost(127.0.0.1)와는 다르다.
그럼 PC의 localhost와 통신하기 위해선 어떻게 해야할까?
host.docker.internal을 이용하면 된다.
PC localhost에 8080번 포트를 통해 웹 서버를 띄워놓고 확인을 해보겠다.
apt-get update
apt-get install curl
도커 컨테이너에서 통신 확인을 위해 curl을 설치한다.
curl localhost:8080
curl: (7) Failed to connect to localhost port 8080: Connection refused
도커 네트워크 내에서는 8080번 포트를 이용하지 않으므로 당연히 연결이 거부된다.
curl host.docker.internal:8080
<!DOCTYPE html>
<html>
<body>
<div>
Test
</div>
</body>
</html>
다음과 같이 localhost:8080의(PC) 소스코드를 확인할 수 있다.
PC의 localhost와 통신이 필요한 상황이라면 localhost -> host.docker.internal 로 변경해 통신을 하면 되는 것이다.
728x90
'Infra > Docker' 카테고리의 다른 글
[Docker] 도커를 통한 3-tier 구조 구축 (0) | 2021.12.02 |
---|---|
[Docker] 도커 컨테이너 ssh 설정 (1. 일반 이미지, 2. Linux 이미지) (0) | 2021.12.01 |
[Docker] run 옵션 나중에 추가하기 / 컨테이너 커밋 (0) | 2021.11.29 |
[Docker] CentOS 깃 서버(Git Server) 컨테이너 구축하기 (0) | 2021.11.22 |
[Docker] Apache - Tomcat(SpringBoot) 연동하기 (mod_jk) (0) | 2021.11.19 |