docker
docker-for-mac

Docker for Mac のコンテナからMac上のWebアプリにアクセスする方法

手順

公式ドキュメントを見ると、以下のホスト名でアクセスできる。
https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds

host.docker.internal

例えば、Mac上でRailsサーバーを立てていて、Dockerのコンテナ上からアクセスしたい場合は以下のようになる。

# debianで出来たイメージなら動く。alpineにはbashやcurlが入っていないので注意。
docker exec -it <container_name> /bin/bash
# ホストのMacにアクセス。Railsは通常はポート3000を使っているので3000でアクセス
curl host.docker.internal:3000

注意点

公式ドキュメントを見ると、バージョン18.03からこのホスト名が使えるようになった。
https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds

それ以前だと以下のホスト名でアクセスできたようだ。

docker.for.mac.localhost

検索していると、上記のホスト名が多く出てくるので注意。
現在でも使えるが、いつ使えなくなるかわからない。
もしかしたらhost.docker.internalも急に非推奨になるかもしれない。