docker部署微服务遇到的问题二
自己尝试将微服务部署到docker上面,期间按照周立的微服务架构实战13章进行学习
按照书上的步骤,一切部署成功之后,尝试访问,一直没有成功访问,周五部署了两遍 折腾了一下 还是没有找到为啥,周一继续终于解决了,并且理解了为什么
按照宿主ip+暴露端口号:
localhost:60901/test/one/
127.0.0.1:60901/test/one/
访问都不成功
后进入容器内部,用curl进行访问,是可以成功访问到微服务接口的内容:
进入指定的容器:
指令:
docker exec -it <container_name>
docker exec -it <container_name> /bin/bash
docker exec -it <container_name> /bin/bash
在容器内部用curl访问:
可以看出,在容器内部是可以成功访问到微服务的接口的
在容器外是不可以访问到微服务接口的。
为什么会这样?
需要理解一下之间的关系:
由于虚拟网卡的作用,本地127.0.0.1/localhost本地和docker的虚拟机192.168.99.100之间在外界看来,是平等的关系,所以用127.0.0.1/localhost 访问的本机windows,而不能访问到docker的虚拟机。用docker虚拟机的ip访问即可。
192.168.99.100:60901/test/one/
是可以成功访问到微服务的接口内容
其实最开始尝试了这个docker 的虚拟ip,但是当时好像一下子没有成功,就没有再考虑这个方向
感谢 远方一个前辈的帮忙和指点