私はDockerコンテナセットをホストするCentOS 7オペレーティングシステムを使用しています。
Webブラウザを使用すると、ポート80からサービスにアクセスして応答を受け取ることができます。いくつかのローカル知識は、応答がDockerコンテナから出てくることを理解するのに役立ちます。
しかし、大きな問題があります。オペレーティングシステムでポート80が開いていることを示す方法が見つからないようです。私が試したことは次のとおりです(すべてのroot
ユーザーを含む)。
netstat -tulnp | grep 80
リスト何もないポート80で受信ss -nutlp | grep 80
ポート80でリッスンしていないエントリのリストlsof -i -P | grep 80
また、ポート 80 でリッスンしないエントリも一覧表示されます。wget 127.0.0.1
index.htmlを正常に取得しました。
質問するルーストアバウトダイレクトパスはdocker ps
実際に私が探している答えではありません。なぜなら、私たちはオペレーティングシステムに尋ねて、ポート80への要求を処理するプロセスを確認する必要があるからです。docker ps
返されるのでこれも役に立ちません。一部PORTS 列に次の項目があるコンテナー:
PORTS
80/tcp
8080/tcp
80/tcp
また行きたくないドッカーオペレーティングシステムを調査し、ポート80の処理を担当するプロセスを識別する方法が必要なので、答えを探しています。
私の唯一の推測はドッカーこれらのネットワーク要求をブロックするには、一種の低レベルドライバをインストールします。
この情報とコマンドラインコマンドを配布するためにCentOSを入手する方法についての提案があれば、大いに感謝します!
答え1
Dockerホストはポート80でリッスンしていますか?ポート80から任意のポートにリダイレクトできます。はい内蔵ファイアウォール監視を使用してください。
IPTABLESを実行している場合は、次のコマンドを使用して確認できます。
iptables -L -t nat
これにより、次のようなリダイレクトが何であるかを示すDOCKERというチェーンが表示されます。
Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
DNAT tcp -- anywhere anywhere tcp dpt:http-alt to:172.17.0.3:80
DNAT tcp -- anywhere anywhere tcp dpt:4433 to:172.17.0.3:443
DNAT tcp -- anywhere anywhere tcp dpt:1688 to:172.17.0.4:1688