Edited at

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も急に非推奨になるかもしれない。