赞
踩
1、前提说明:项目使用的是微服务,用的springboot2 2.3.2.RELEASE版本,使用Docker部署服务;
2、出现问题:Docker实例正常启动,且端口正常映射【19960:8080】,但是外网无法访问接口服务;
3、排查步骤:
3.1、检查Docker实例状态,正常启动;
3.2、检查防火墙,是关闭状态;
3.3、检查阿里云服务器对外开放端口,端口也已经开放。
3.4、迷茫中。。。
最后在反复排查中,发现了一个问题:
首先,我在Dockerfile里面设置了:EXPOSE 8080;
然后,项目的yml配置文件端口号配置的是:
server:
port: 8002
最后,启动Docker时,用的命令是:docker run -d -p 19960:8080 ...
也就是说,容器对外暴露的接口是8080,springboot项目启动的端口是8002,服务器对外的端口是19960。我在使用telnet对应端口时,提示:
于是,我试了这样操作:
1.修改项目的yml配置文件端口号配置的是:
server:
port: 19960
2.在Dockerfile里面修改设置:EXPOSE 19960;
3.启动Docker时,用的命令是:docker run -d -p 19960:19960 ...
最后,终于可以正常访问了。。。
总结下:容器启动时,docker run -d -p 19960:19960,设置对外暴露的端口,应该是要跟项目配置的服务端口【server.port:19960】保持一致的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。