DockerコンテナからWindowsホストにホスト名アクセス

 Azureのファイルストレージエミュレータを使った開発を行う場合、コンテナに入れたWebアプリからストレージエミュレータを参照するには、ホストマシンへアクセスできないといかん。ホストのIPを調べて、コンテナにホスト名でアクセスできるように渡してやる。
docker run --rm -it --add-host MyComputer:10.0.75.1  debian /bin/bash

あとはコンテナ内で好き放題。
ping MyComputer


 IPで解決してもいいんだけどコンテナ内にハードコーディングで埋め込んでしまうのもアレだったので(IP固定だと趣味の開発でコワーキングスペースとか行ったときに面倒になる)。
 ちなみにWindowsでやることを考えているので、PowerShellでスクリプトを書いてホストのIPを自動取得してもいい。環境変数dnat_ipに、DockerNATアダプタでつないでいるネットワークのIPを入れてみる。
set-item env:dnat_ip -value ( `

Get-NetIpaddress `
| Where InterfaceAlias -eq "vEthernet (DockerNAT)" `
| Select -ExpandProperty IPAddress `
)


 ↑を使えば、さっきのコンテナのコマンドは下記のようになる。
docker run --rm -it --add-host MyComputer:$Env:dnat_ip  debian /bin/bash
comment: 0