私は Docker for Mac を使用しています。Docker コンテナで nodejs ベースのマイクロサービスを実行しています。ブラウザからノード マイクロサービスをテストしたいです。実行中の Docker コンテナの IP アドレスを取得するにはどうすればよいでしょうか?
ベストアンサー1
ホストからコンテナにポートをマップしたくない場合は、コンテナの docker 範囲 IP に直接アクセスできます。この範囲は、デフォルトではホストからのみアクセスされます。次のようにして、コンテナのネットワーク データを確認できます。
docker inspect <containerNameOrId>
おそらくフィルタリングした方が良いでしょう:
docker inspect <containerNameOrId> | grep '"IPAddress"' | head -n 1
通常、デフォルトの docker の IP 範囲は です。すべてが正常で、特別なネットワーク オプションを指定していない場合、172.17.0.0/16
ホストは172.17.0.1
、最初のコンテナは になります。172.17.0.2
編集「bash トリック」の代わりに Docker 機能を使用する、よりエレガントな別の方法:
docker inspect -f "{{ .NetworkSettings.IPAddress }}" <containerNameOrId>
編集2最新の Docker エンジンでは、次のようになります (コメントを投稿してくれた方々に感謝します)。
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <containerNameOrId>