2018-08-30 14:28:31.0|分类: docker+node.js+zookeeper构建微服务|浏览量: 1431
微服务架构整体已经介绍完毕,zookeeper为分布式集群搭建。springBoot开发服务代码,服务实例启动时自动将服务信息注册到zookeeper节点。node.js连接zookeeper集群,node.js反向代理http请求。mvn+eclipse打包项目镜像并且推送到本地registry。 现在介绍docker运行自己项目镜像。环境是win7+docker 1、项目registration-service主要是注册服务到zookeeper集群 2、render-services主要是用户自己提供的服务 3、打包镜像并将镜像推送到本地registry mvn docker:build docker:push 4、运行镜像 docker run -d -p 8880:8080 --name render 127.0.0.1:50000/com.cookqq/render-services:0.1.0-SNAPSHOT ip:hostport:containerport #指定ip、指定主机port、指定容器 portip::containerport #指定ip、未指定主机port、指定容器 porthostport:container #未指定ip port、指定主机port、指定容器port 5、win7访问浏览器地址失败,没有返回任何请求 6、验证jar文件是否正确 单独把render-services-0.1.0-SNAPSHOT.jar复制到虚拟机中,然后执行java -jar render-services-0.1.0-SNAPSHOT.jar 项目启动起来了,win7环境访问成功!这说明jar文件没有问题。 注意如果访问失败,把 server.address=127.0.0.1 server.port=8080 修改成 server.address=192.168.99.100 server.port=8080 192.168.99.100是虚拟机的地址。 7、查看docker日志 docker logs -f -t --tail=1000 render 发现项目已经正确启动了 8、查看端口号映射是否正确 docker ps 端口映射正确 9、查看端口号8880 netstat -ap|grep 8880 端口号启动正确 10、虚拟机中直接curl访问 curl 127.0.0.1:8880/hello curl: (52) Empty reply from server curl报错了,为什么会出现empty reply form server ? 无法访问Docker容器映射到宿主上的端口!! 经过搜索发现: docker里面的host不能配置127.0.0.1 或者192.168.0.1 或则宿主机器将无法访问端口,需要将绑定接口修改成0.0.0.0 11、修改绑定绑定地址 12、重新打包jar,生成镜像,推送镜像,运行镜像 13、访问curl 127.0.0.1:8880/hello 浏览器访问 |