当前位置: 代码网 > it编程>开发工具>Docker > 记一次Docker端口主机访问Connection reset by peer

记一次Docker端口主机访问Connection reset by peer

2024年08月03日 Docker 我要评论
项目场景:外部访问docker容器内的接口,需要将端口暴露出来。

项目场景:外部访问docker容器内的接口,需要将端口暴露出来。

docker run -v /workspace:/root/workspace -itd --name [容器名] -p 容器内端口:主机端口  镜像ip  bash

问题描述

主机访问容器映射端口报 :

curl: (56) recv failure: connection reset by peer

在这里插入图片描述


排查过程:

1、检查容器运行是否开启可端口映射

docker ps -a 

在这里插入图片描述

明显是暴露了,但是通过telnet抓取报错:

telnet ip 端口

在这里插入图片描述
2、检查端口是否被监听

# 进入容器
docker exec -it 容器id bash

# 查看端口是否被监听
netstat -an | grep 8080  
# 或者
netstat -nltp

# 检查端口是否可以访问 
curl 127.0.0.1:8080 

# 查看主机网络端口映射
docker port 容器id

在这里插入图片描述
通过上面操作,发现端口映射,容器内端口已被监听,并且curl 是可以访问的。

解决方案:

  • 其实排查到这一步就可以解决了,可以看到容器内netstat监听ip是127.0.0.1的端口;
  • 在容器内部的监听端口为127.0.0.1的话,那么只能接受容器内部来自127.0.0.1的本地回环访问。来自容器外外部的访问请求将被拒绝。
  • 因此,这个问题的修复原因实际上很简单,只需要将监听ip改为0.0.0.0即可。
    在这里插入图片描述
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com