如何解决swarm docker 端口不通问题
swarm docker端口不通的解决办法:1、编辑配置文件,添加配置“net.ipv4.ip_forward=1”;2、通过“systemctl restart network”重启网络。
本文操作环境: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中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PiNetwork节点详解及安装指南本文将详细介绍PiNetwork生态系统中的关键角色——Pi节点,并提供安装和配置的完整步骤。Pi节点在PiNetwork区块链测试网推出后,成为众多先锋积极参与测试的重要环节,为即将到来的主网发布做准备。如果您还不了解PiNetwork,请参考Pi币是什么?上市价格多少?Pi用途、挖矿及安全性分析。什么是PiNetwork?PiNetwork项目始于2019年,拥有其专属加密货币Pi币。该项目旨在创建一个人人可参与

DeepSeek的安装方法有多种,包括:从源码编译(适用于经验丰富的开发者)使用预编译包(适用于Windows用户)使用Docker容器(最便捷,无需担心兼容性)无论选择哪种方法,请仔细阅读官方文档并充分准备,避免不必要的麻烦。

使用Docker容器部署JavaEE应用程序:创建Dockerfile定义镜像、构建镜像、运行容器并映射端口,然后在浏览器中访问应用程序。示例JavaEE应用程序:RESTAPI与数据库交互,通过Docker部署后可在localhost访问。

在Docker环境中使用PECL安装扩展时报错的原因及解决方法在使用Docker环境时,我们常常会遇到一些令人头疼的问�...

问题介绍:在使用Docker部署的禅道项目中,用户常常会遇到版本升级的问题。本文将详细解答如何从禅道17.8版�...

HashiCorp 的 Consul 是一款多功能工具,可在现代 DevOps 环境中提供多种功能。它广泛用于服务发现、运行状况检查、负载平衡,尤其是作为分布式键值 (KV) 存储。 Consul 中的 KV 存储非常适合在整个基础设施中以高度可用、一致的方式存储动态配置数据、功能标志、秘密和元数据,以便分布式系统中的服务可以动态访问它们。使用 Docker 配置 Consul 的 KV 存储可以实现快速设置和隔离环境,使其成为测试和开发的理想选择。

Docker 使您可以轻松地将应用程序和服务包装在容器中,以便您可以在任何地方运行它们。然而,当您使用 Docker 时,也很容易积累过多未使用的映像、容器和数据卷,从而使输出变得混乱并消耗磁盘空间。 Docker 为您提供了从命令行清理系统所需的所有工具。此备忘单式指南提供了命令的快速参考,这些命令可通过删除未使用的 Docker 映像、容器和卷来释放磁盘空间并保持系统井井有条。
