docker에서 호스트 네트워크 접근하기
문제점
docker로 웹 서버를 구성했는데, 웹 서버에서 호스트에 구성되어 있는 서비스를 리버스 프록시로 넘겨줘야 할 일이 생겼다. 물론 호스트에 구성되어 있는 서비스를 Docker로 넣으면 좋겠지만, 해당 서비스는 Docker로 구성되어 있지 않다는 점이 문제.
해결
네트워크 세팅을 host 모드로 변경하면 호스트 네트워크에 간단하게 접근할 수 있다.
Docker 명령어인 경우:
--network host
Docker Compose 인 경우:
network_mode: "host"
주의할 점
Host 네트워크 드라이버는 호스트와 직렬되기 때문에, 도커의 bridge 네트워크가 제공하는 여러 기능들을 사용할 수 없게 된다.
불가피 한 경우가 아니라면 가능하면 서비스는 도커로 모두 넣는 것이 좋을 듯...
또한 Host 네트워크는 Docker Swarm에서는 사용할 수 없다고 한다.