コンテナ内では localhost
はコンテナ自身を指すので使えません。
かといってホストの IP アドレスを直接参照すると、IP アドレスが変わったときに困ります。
このような場合、host.docker.internal
を使います。
host.docker.internal
はもともと Windows と Mac でしか使えなかったようですが、Docker 20.10 からLinux でも使えるようになったそうです。
この機能を有効化するには --add-host
で host.docker.internal:host-gateway
を指定する必要があるようです。
$ docker run -it --rm \
--add-host=host.docker.internal:host-gateway \
image_name
docker-compose の場合は extra_hosts
で指定します。
services:
app:
extra_hosts:
- "host.docker.internal:host-gateway"
参考 URL
- https://qiita.com/skobaken/items/03a8b9d0e443745862ac
- https://medium.com/@TimvanBaarsen/how-to-connect-to-the-docker-host-from-inside-a-docker-container-112b4c71bc66
- https://uepon.hatenadiary.com/entry/2021/06/02/002613
- https://dora.bk.tsukuba.ac.jp/~takeuchi/?%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%2Fdocker%2F%E8%A6%9A%E6%9B%B8