--net=host が docker run コマンドで参照されている場合、Docker コンテナはポートを公開しません。

--net=host が docker run コマンドで参照されている場合、Docker コンテナはポートを公開しません。

CentOS DockerホストにCentOS Dockerコンテナがあります。このコマンドを使用してドッカーイメージを実行すると、

docker run -d --net=host -p 8777:8777 ceilometer:1.x

DockerコンテナはホストのIPを取得しますが、ホストに割り当てられたポートはありません。 "--net=host" なしで同じコマンドを実行する場合:

docker run -d -p 8777:8777 ceilometer:1.x

dockerはポートを公開しますが、IPは異なります。 Dockerのバージョンは1.10.1です。 Dockerコンテナがポートを公開するホストと同じIPを持つことを望みます。記事でも言及しました。ドッカーファイルガイドライン露出 8777しかし、「--net = host」に言及すると動作しません。端末の実行注文する。

答え1

--net=hostコンテナを使用する場合ホストのネットワークスタックが共有され、ホストのすべてのインターフェイスをコンテナで使用できます。、(dockerの実行参照によると)

すでにすべてを共有している場合は、8777を8777に明示的にマッピングする必要はありません。実際にマッピングを実装するのは奇妙です。 1234を8777にマッピングすると、ホストも8777を受信しますか?これが割り当てられたポートが表示されない理由です。

無視し--net=hostてホストの8777に接続しようとすると、コンテナの8777に接続します。コンテナが使用している実際のIPアドレスがわからないことを確認してください。外部世界では、ホストIPのみを表示できます。

関連情報