[Docker] コンテナ内からホストにアクセスする

コンテナ内では localhost はコンテナ自身を指すので使えません。
かといってホストの IP アドレスを直接参照すると、IP アドレスが変わったときに困ります。

このような場合、host.docker.internal を使います。

host.docker.internal はもともと Windows と Mac でしか使えなかったようですが、Docker 20.10 からLinux でも使えるようになったそうです。
この機能を有効化するには --add-hosthost.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

Hugo で構築されています。
テーマ StackJimmy によって設計されています。