一、问题描述:容器内可访问,容器外不可访问

用docker起的应用程序,在容器内可以访问这个程序,没问题,如下:

但是容器外、宿主机内就不行(端口不通)

但是明明把宿主机的端口和容器的端口映射了,这是之前docker run 的命令:docker run   -itd   --name demo -p 8091:8091 icpcloudgather

容器内可访问,容器外不可访问,出现这个问题的原因明显是网络问题,并且可以定位到是容器与宿主机之前的网络通信出现问题。

二、解决方式:重新设置网卡

#停止docker
systemctl stop docker
#docker0
ip link set dev docker0 down
#删除docker0网桥
brctl delbr docker0
#防火墙设置,后来发现这一步不用执行可以
iptables -t nat -F POSTROUTING
#增加docker0 网桥
brctl addbr docker0
#增加网卡
ip addr add 172.16.10.1/24 dev docker0
#启用网卡
ip link set dev docker0 up
#重启docker服务
systemctl restart docker

三、验证问题解决结果:容器外可以访问

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐