首頁  >  文章  >  運維  >  如何解決swarm docker 連接埠不通問題

如何解決swarm docker 連接埠不通問題

藏色散人
藏色散人原創
2022-01-20 14:29:205894瀏覽

swarm docker連接埠不通的解決方法:1、編輯設定文件,新增配置「net.ipv4.ip_forward=1」;2、透過「systemctl restart network」重新啟動網路。

如何解決swarm docker 連接埠不通問題

本文操作環境:centOS6.8系統、Docker 18.09.x版、Dell G3電腦。

如何解決swarm docker 連接埠不通問題? docker swarm網路問題

問題:

docker主機內部網路正常,與其它主機的連接失效,其它主機無法連接docker主機上映射的端口,docker內部也無法連接外部主機。

伺服器環境如下:

  • 所在系統centos
  • docker info
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 info,警告消失,主機上的docker網路恢復正常。


重點,針對雲端伺服器

我所使用的伺服器是阿里雲伺服器
如果你的叢集使用的預設連接埠4789,那麼你可能會遇到跟我一樣的問題。

阿里雲的幫助文件中有這樣一句話:

在添加UDP監聽前,注意如下限制:
UDP監聽的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:docker是否開源下一篇:docker是否開源