ホームページ >運用・保守 >Docker >Docker が外部ネットワーク ソリューションに接続できない

Docker が外部ネットワーク ソリューションに接続できない

尚
オリジナル
2020-03-31 11:50:5010945ブラウズ

Docker が外部ネットワーク ソリューションに接続できない

Docker が外部ネットワークに接続できない 解決策:

1. 以前に正常に使用されていた場合、ホストは外部ネットワークにアクセスできますが、コンテナーは問題を解決するには、docker サービスを再起動してみてください:

>>>sercice docker restart
#debian/ubutun中sh为dash,centos指bash
>>>docker run -it -v /yourfile:/file -p 8000:8000 /bin/bash imageid 
>>>

2. Docker コンテナはサービスを提供し、ポート 8888 をリッスンします。外部アクセスを有効にするには、ポート マッピングが必要です。

docker run -it --rm -p 8888:8888 server:v1

この時点で問題が発生しました。仮想マシン A にデプロイした後、A では 8888 ポート サービスにアクセスできますが、B ではアクセスできません。

これは、リクエストがインターセプトされたことが原因であるはずです。

Check firewall-cmd --state

出力が「not running」、FirewallD が実行されておらず、すべての保護戦略が開始されていない場合は、次のことができます。接続をブロックしているファイアウォールを除外します。

出力が「実行中」の場合は、FirewallD が現在実行中であることを意味します。現在開いているポートとサービスを確認するには、次のコマンドを入力する必要があります:

firewall-cmd --list-ports
firewall-cmd --list-services

解決策は 2 つあります。 :

1. FirewallD サービスをオフにする:

ファイアウォールが必要ない場合は、FirewallD サービスを直接オフにするだけです

systemctl stop firewalld.service

2. にポリシーを追加します。指定したポートを外部に開きます:

たとえば、外部 5000/tcp ポートを今すぐ開きたい場合は、次のコマンドを使用できます:

firewall-cmd --add-port=5000/tcp --permanent
firewall-cmd --reload

一時的にのみ開く場合ポートを削除するには、コマンドの最初の行にある「--permanent」パラメータを削除します。その後、FirewallD サービスが再度再起動されると、このポリシーは無効になります。

ip 転送がオンになっていません

sysctl net.ipv4.ip_forward

net.ipv4.ip_forward=0 が表示される場合は、オンになっていないことを意味します。

sysctl.conf ファイルを開きます

vi /etc/sysctl.conf

次のコードを追加します:

net.ipv4.ip_forward=1

その他の関連チュートリアルについては、dockertutorial 列に注目してください。 PHP 中国語 Web サイトにあります。

以上がDocker が外部ネットワーク ソリューションに接続できないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。