CENTOS7系统DOCKER容器互相通信,端口互通

最近一直在学习使用docker部署项目,项目需要。

问题是:使用docker部署nacos和一个spring cloud项目,配置spring cloud在使用nacos配置server-addr时候使用nacos容器的名称和端口时启动web项目,出现连接不上的问题,后来又换成nacos的ip也不行,可是使用ping命令是正常的。但是把主机的防火墙关闭了,重启docker,运行项目正常。出现这样的情况的,或遇到这样容器之间的有端口通信问题,可以参考下。

总结一句话都是网络防火墙的问题。网上找了很多的资料都说这 添加 daemon.json中禁用iptables什么的,我试了,没有效果,可能是我配置的不对,现在看看我的处理。至少是成功了。

环境:使用同一个主机的一个docker实例,容器创建(这里就不写出创建容器的命令了,网上一大堆)的时候都使用自己的创建的bridge网络(-o的选项是为重合名网卡的名称,写运维脚本时有帮助,ip a 查询会有意想不到发现)

docker network create -d bridge --subnet=172.19.0.0/24 --attachable digit_net -o com.docker.network.bridge.name=br_digit 

然后我们就是操作防火墙:

firewall-cmd --zone=trusted  --add-interface=br_digit --permanent

//重载
firewall-cmd --reload

最后:重启docker

systemctl restart docker

终于可以了。

其实完全可以不用使用容器的ip进行处理,使用主机 的ip和公开的端口完全是可以运行的,但是注意有时要设置公开主机的端口一些端口:多研究 firewall-cmd命令,下面是一个有用的例子(不介绍含义了):

 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.19.0.0/24" port protocol="tcp" port="8848" accept"

总结:官方的文档多看,尤其是那些Docker CLI (docker)命令,多看看,会有很多的收获。对问题要不断的发现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值