一、添加maven项:
二、Dockerfile 文件:
三、使用docker命令打包项目
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即可。