ドッカーコンテナの中からホストに通信するには?

ショコラ
ショコラ

ドッカーコンテナの中からホストに通信するには?

「host.docker.internal」でアクセスする。
これができるのは、Windows と Mac のみ。Linux だと失敗してしまいます。
なので、host.docker.internal を host-gateway 定義する。

もっさん先輩
もっさん先輩

ドッカーコマンドで、host.docker.internal の指定のしかた

docker run --add-host=host.docker.internal:host-gateway

ドッカーコンポーズで、host.docker.internal の指定のしかた

services:
  app:
    image: busybox 
    extra_hosts:
      - host.docker.internal:host-gateway

host.docker.internal を定義して ping をしてみます。

docker run --add-host=host.docker.internal:host-gateway --rm busybox ping host.docker.internal 
$ docker run --add-host=host.docker.internal:host-gateway --rm busybox ping host.docker.internal
PING host.docker.internal (172.17.0.1): 56 data bytes
64 bytes from 172.17.0.1: seq=0 ttl=64 time=0.090 ms

シチュエーション

Linux の場合 host.docker.internal に ping をするとエラーになります。

docker run --rm busybox ping host.docker.internal 
$ docker run --rm busybox ping host.docker.internal
ping: bad address 'host.docker.internal'
Scroll to Top