問題の説明:
docker を起動してポート マッピングを実行すると、docker は iptables に DNAT ルールを追加し、対応するポートの受信パケットを IP に変換して Forward を実行します。 、および docker ドメインからすべての IP を変換するルールを追加します。
しかし、Centos7ではdockerは正常に外部ネットワークにアクセスできるのですが、外部ネットワークからのリクエストがeth1で受信転送された後docker0に届かなかったり、送信時に(oui Unknown)と表示されたりします。
解決策は次のとおりです。
docker を起動した後、iptables を再起動します
service iptables restart
docker によって追加されたルールをすべてクリアしてから、ルールを追加します
iptables -t nat -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
Docker からのすべてのルールを置き換える パッケージ 172.17.0.0/16 の IP はローカル IP に置き換えられ、Docker が外部ネットワークにアクセスする目的を達成するために送信されます。
推奨される関連チュートリアル: docker チュートリアル
以上がdocker に外部からアクセスできない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。