Swarm Docker ポートに到達できない解決策: 1. 構成ファイルを編集し、構成「net.ipv4.ip_forward=1」を追加します; 2. 「systemctl restart network」を通じてネットワークを再起動します。
この記事の動作環境: centOS6.8 システム、Docker バージョン 18.09.x、Dell G3 コンピューター。
swarm docker ポートがブロックされる問題を解決するにはどうすればよいですか? docker swarm network issue
Docker ホストの内部ネットワークは正常ですが、他のホストとの接続に失敗します。他のホストは Docker にマッピングされたポートに接続できません外部ホスト、およびdockerの内部ネットワークに接続できません。
WARNING: IPv4 forwarding is disabled WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled
構成ファイルの編集
vim /etc/sysctl.conf
構成の追加
net.bridge.bridge-nf-call-ip6tables=1 net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-arptables=1 net.ipv4.ip_forward=1
実行sysctl -p
有効にする
ネットワークを再起動します
systemctl restart network
Docker 情報を再度確認すると、警告が消え、ホスト上の Docker ネットワークが通常に戻ります。
私が使用するサーバーは Alibaba Cloud Server です
クラスターがデフォルトのポート 4789 を使用している場合、私と同じ問題が発生する可能性があります。問題。
Alibaba Cloud のヘルプドキュメントには次の文があります:
UDP モニタリングを追加する前に、次の制限に注意してください:
UDP モニタリングには 3 つのポートがあります: 250、250、 4789 および 4790 ポートはシステム用に予約されており、当面は一般に公開されません。
詳細
バージョン 19.03 以降では、docker は swarm init の上に –data-path-port uint32 構成項目を追加して、docker swarm の VXLAN ポートを変更します。
ポートを変更した後、問題は正常に解決されました
sudo docker swarm init --data-path-port 5789
docker ログ (journalctl -u docker -n 20 -f) を確認すると、次のことがわかりました。
level=error msg="error reading the kernel parameter net.ipv4.vs.expire_nodest_conn" error="open /proc/sys/net/ipv4/vs/expire_nodest_conn: no such file or directory"
これは、ホストが ip_vs モジュールをロードしないために発生します。各ノードに ip_vs モジュールをロードした後、docker を再起動するだけです。 [推奨学習:「docker ビデオ チュートリアル 」]
modprobe ip_vs service docker restart
以上がswarm docker ポートがブロックされる問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。