使用項目中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配置圖

