日常你所启动的微服务比如这样的

java -jar eureka-0.0.1-SNAPSHOT.jar --server.port=41578 --spring.profiles.active=local

然后想把它给整Docker里玩玩

首先要在打包好的Spring Boot同级目录下,建立一个Dockerfile

springcloud docker自动部署 springcloud部署到docker_jar

然后在这个文件下写上以下内容,大致的意思上从服务器下载个alpine的带jdk的docker,然后把你的jar打进去

FROM frolvlad/alpine-oraclejdk8
VOLUME /usr/cloud
ADD eureka-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 41578
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","--server.port=41578","--spring.profiles.active=local"]

然后从命令行进入到同级目录,输入以下命令

docker build -t scmeureka/scmeureka .

这嘎达注意里哈,后面那个点儿不上打错的,上特意打上去的,然后执行完效果是酱样事儿的

springcloud docker自动部署 springcloud部署到docker_java_02

之后,就是这个玩意就打好了,你可以docker ps 进去瞅瞅

然后启动的时候,可以打以下命令

docker run -p 41578:41578 scmeureka/scmeureka

然后这玩意就起来了

springcloud docker自动部署 springcloud部署到docker_jar_03

然后,咱们就得想,这玩意得怎么整云上啊?不上微服务嘛,那得服务起来啊。

那这个docker,要么放hub.docker.com上,要么自己搭建个harbor,要么网上有免费的,比如网易,阿里云,这里我打算整阿里云上。

阿里云顶上有个叫容器镜像服务,进阿里云后,一搜就搜着,暂时免费不要钱。

springcloud docker自动部署 springcloud部署到docker_jar_04

进去之后吧点开通后上这样事儿地

springcloud docker自动部署 springcloud部署到docker_jar_05

这时候,你就可以新建一个仓库了,现在不要钱,哈哈

springcloud docker自动部署 springcloud部署到docker_docker_06

进去就有说明书,告诉你怎么把本地的镜像,往他们服务器上整,标红的地方老坑了,估计产品经理就是懒,这特奶奶的上哪找去啊,密码早忘了,你提示完给给连接不就完了,哎,浪费了我半个多小时,吐槽下哈。告诉你们在哪

springcloud docker自动部署 springcloud部署到docker_jar_07

这个得退上个页面才行,就在左侧菜单

然后下一步,就得考虑了,这玩意部署哪?怎么部署?  

既然是镜像,无非也就K8S Swarm Rancher,今天我用Rancher给大家演示下哈

springcloud docker自动部署 springcloud部署到docker_java_08

先到Rancher的镜像库添加下,包括输入下用户名,密码。

然后建立下容器

springcloud docker自动部署 springcloud部署到docker_jar_09

这个地方注意了,我这宿主机里把那台云主机的私有IP绑定了给域名,目的是以后有新的其他Spring Boot服务器弹性伸缩启动的时候,能直接定位到内网eureka的地址,因为听说SDN的网络出了名的卡,连接服务(--link --name)的方式官方也不推荐使用,甚至可能会下线,所以才出此下策,让他们服务之间至少有个沟通方式,然后启动容器,可以进到容器里面,ping一下自己绑定的域名,看看是不是私有IP

springcloud docker自动部署 springcloud部署到docker_java_10