记一次docker springboot无法访问

使用项目中springboot jar包和docker file构建镜像后,run镜像并映射端口,宿主机和浏览器均不能访问;

后排查发现项目application文件中已指定端口10008,故修改了dockerfile中EXPOSE的端口(run 镜像文件的端口可随机),重新构建镜像运行, 容器内部运行 curl://http:localhost:10008 访问成功,宿主机curl://http:容器ip:10008 访问成功,但Windows 浏览器无法访问,将容器IP加入宿主机hosts文件中即解决问题

问题虽然解决了,但原理还需要进一步研究

2020-1-14更新:

由于容器IP是动态变化的,故不能将其加入宿主机hosts文件,在运行容器时配置相关信息即可解决此问题:

docker run --add-host reg.yzd.com:宿主机IP -p 10009:10009 -d 镜像ID

--add-host:必须是 域名:宿主机IP  *域名必须要配置到宿主机hosts文件中

-p 端口必须和dockerfile中一致,因为其他服务需要访问这个域名下对应端口

reg.yzd.com 服务注册域名

附application配置图

posted @ 2019-12-03 00:33  lilyspring  阅读(3679)  评论(0)    收藏  举报