宿主机无法ping通docker容器IP解决
背景
安装docker后,发现启动容器的端口8082 映射到宿主机的端口80访问主机没有反应,此时进入容器查看日志,发现并没有请求打进来
现象:
正在连接 localhost (localhost)|::1|:80… 已连接。
已发出 HTTP 请求,正在等待回应… 读取文件头错误 (Connection reset by peer)。
重试中。
排查
1:怀疑容器内的HTTP端口映射错了,进去其他容器,wget访问目标容器,发现可以访问,容器启动,映射没有问题
2:请求的端口到宿主机不通?防火墙端口未开放?IP白名单?
抓包看看:
可以抓到请求包,此路是通的
3:主机和容器不通?
宿主机ping docker容器,不通
结果宿主机无法ping通docker容器IP
这种情况一般是主机网络段地址和docker网段地址冲突导致的
修复方式
1:可以改用 host模式部署 --net=host
2:创建新网桥 指定其他网段 IP ,我这里将 172.28.0 更改为 172.19.0
docker network create --subnet=172.19.0.0/16 bridge2