spring cloud各个微服务打包到docker容器内

一、添加maven项:

二、Dockerfile 文件:

三、使用docker命令打包项目

-Dmaven.test.skip=true 不编译测试类可用以上命名依次打包 project-eureka(注册中心项目) uaa(认证中心) (微服务)project-0…project-n  
到这里项目就可以运行了。http://localhost:8761/



docker常用命令



在研究docker的同时也是碰见一些坑在这里分享

问题一、微服务部署到docker镜像内如何连接数据库的,微服务docker镜像内本地没有安装mysql。

研究了几天原本以为 --link mysql:latest 是指向docker容器内的mysql呢。(目前不知道–link真正实际的作用。 应该是在宿机内使用的吧(192.168.99.100)

曾经傻傻的写了:docker run --name base-uaa -p 9999:9999 --link mysql:latest --link base-registry -t base-uaa:latest 意思是启动uaa项目并且找到mysql容器,后面的link是找到base-redgistry项目.

问题二、当eureka 项目打包到docker后,微服务如何注册到eureka注册中心。

其实当你在外部安装docker后,比如mysql


0.0.0.0:3306其实是127.0.0.1:3306

直接当成mysql已安装到本地即可。用客户端直接连即可。

但是如果我微服务要注册到eureka上,就不能写127.0.0.1了,因为docker镜像内会自动映射出一个内部的IP地址

如下图:



172.17.0.6 Ip是镜像内分配的ip外部无法访问,不能直接http://172.17.0.6:8080

但是你可以http:localhost:8080

需要写真正的ip地址


打包到docker容器后,需要将所有的127.0.0.1或者localhost都修改成真实IP即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容