host.docker.internal

By | 2022년 12월 9일

컨테이너 내부에서 호스트를 호출해야 할 경우

예를 들어 Host에 telegraf로 statsd 서버가 떠 있는 상태에서 컨테이너 내부의 Metric를 Host로 보낼때

호스트의 IP를 알기는 어렵고 이럴때 많이 사용하는게 host.docker.internal 이다.

하지만 해당 도메인은  Mac 또는 Windows(확실하지는 않음)에서만 가능하다.

Linux에서 사용하기 위해서는 –add-host 로 실행시 옵션을 주어야 한다.

docker run -it --add-host=host.docker.internal:host-gateway ubuntu:20.04 bash

docker-compose.yml 에서는 아래 처럼 설정하면 된다.

version: "3.8"
services:
  ubuntu:
    image: ubuntu:20.04
    container_name: ubuntu
    extra_hosts:
      - "host.docker.internal:host-gateway"