docker for macのホストを指すドメイン名
手元のMacで開発をしていて、コンテナからホスト上で動作しているサーバに繋ぐ必要がありました。単純にlocalhostを使うとコンテナ自体を指してしまうので、それでは通信できません。ホストのIPをいちいち指定するのもなーと思っていたんですが、docker for macにはホストを表すdocker.for.mac.localhost
というドメインがありました。*1
https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds
2018/01/17 更新
docker.for.mac.localhost
は、docker.for.mac.host.internal
に変わるそうです。
Docker Community Edition 17.12.0-ce-mac46 2018-01-09 (Stable)から、docker.for.mac.host.internal
が追加され、docker.for.mac.localhost
はまだ継続して使えますが、おそらくどこかのバージョンで消えるものと思われます。
これでコンテナ -> ホスト上のサービスに、共通の設定で繋ぐことができます。
docker host portなどで調べると、nginxなどのWebサーバをコンテナで起動して、それにホストから接続するための設定のexposeや-pオプションが出てきます。ホスト->コンテナの方向の情報が多く、探すのに手間取りましたが、用意されていました。
ホストのポートを指定できるので、sshトンネリングなどで外部サーバとの通信経路を作っておけば、ローカルのコンテナから、外部サーバとの通信を行うといったことも可能です。
*1:docker 17.06からみたい