比尔云BierYun--阿里云最新优惠活动
阿里云优惠码丨阿里云代金券

docker 容器在宿主机上通信问题

docker 容器在宿主机上通信问题

这段时间学习docker,掉进了一些坑,在这里尤其需要说一下这个微服务的服务发现与注册,刚搞好就来新问题

关于通信ip
微服务会有一个注册的路径http,这里默认是localhost,在本机是没问题的,但是在docker上市行不通的,所以需要更改ip,当然如果是多配置文件的话,拿只需要将需要的配置文件在打包是指定就行.

docker的容器都可以在宿主机上**-p**来映射宿主机端口
假如有一个服务中心,-p 8761:8761 前面是宿主机端口,后面是容器端口
宿主机ip :192.168.0.58
在服务中ip指向就应该是192.168.0.58:8761 ,指向宿主机8761,然后映射到容器8761.
在这了我要说一下,我最开始是用的docker for window,各个服务都正常发现与注册,但是后来在centos中存在的问题:java.net.NoRouteToHostException: Host is unreachable (Host unreachable)
这里是防火墙的问题,本人用的centos7,是Firewalls,低一些的版本好像是IPtable,但是最新的centos都是使用的Firewalls,所以还是使用Firewalls的解决办法,当然如果想用IPtable来解决也行,看个人,docker在安装之初就会自动生成一个docker0的网桥,如果容器没有指定的话,都是默认使用他,我们只需要将他加入防火墙白名单即可

sudo firewall-cmd –permanent –zone=trusted –add-interface=docker0
sudo firewall-cmd –reload
1
2
也可以指定单一端口

sudo firewall-cmd –permanent –zone=trusted –add-port=8761/tcp
1
IPtable解决
#停止firewalld服务
systemctl stop firewalld
#禁用firewalld服务
systemctl mask firewalld

yum install -y iptables
yum update iptables
yum install -y iptables-services

iptables -A INPUT -i docker0 -j ACCEPT
———————
作者:祝少云
来源:CSDN
原文:https://blog.csdn.net/weixin_44400390/article/details/94736269
版权声明:本文为博主原创文章,转载请附上博文链接!

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

强烈推荐

高性能SSD云服务器ECS抗攻击,高可用云数据库RDS