今天自己玩docker遇到问题,自己的springboot项目发布到容器,通过宿主机访问不了,通过容器ip可以,那肯定不行。
知行合一,最终发现Dockerfile文件没暴露端口 EXPOSE 8080,下面对三个端口进行解读。
三个端口:
1、jar中tomcat端口:springboot项目中猫的端口,java -jar 启动后就用这个端口访问。
2、Dockerfile文件中的端口,暴露容器的端口,没这个启动容器的时候,容器不会映射出去到宿主机,也就是宿主机通过localhost访问不了。只能通过容器ip访问。
EXPOSE 8080有这个就有下面的端口否则就没有,没有就localhost访问不了。
3、docker run -p端口:-p 9000:8080这是把容器的8080端口映射到宿主机,宿主机通过9000访问就行。