设为首页 收藏本站
查看: 1028|回复: 0

[经验分享] 将spring cloud打包docker镜像

[复制链接]

尚未签到

发表于 2017-12-6 08:43:48 | 显示全部楼层 |阅读模式
  简介:用spring cloud构建微服务后,微服务肯定要docker镜像化然后用rancher等可视化工具管理,这就是走完了一套基本的流程,现在简单介绍下
  环境:两台centos7.x的服务器,一台本地window10
  一个spring cloud的eureka的注册中心,
  一个spring cloud的普通服务,注册到eureka
  前提:首先你的spring cloud注册中心和普通服务要能本地运行,百度一搜到处都是资料,这里我就不细讲了,现在我们要把spring cloud部署到服务器上面
  步骤:1.修改注册中心项目配置文件
  spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=IP1  //注册中心所在服务器IP
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://IP1:1111/eureka/   //这里注意加上http://
  修改普通服务配置文件   
  spring.application.name=api-gateway
server.port=5555
eureka.instance.hostname=IP2   //普通服务所在服务器IP
eureka.client.serviceUrl.defaultZone=http://IP1:1111/eureka/   //这里注意加上http://
  然后我们打包jar,这里有两种打包方式,一种是运行编译后的java文件,一种是打包jar,我们选择的是打包jar包,进入项目的根目录,按住shift右击鼠标,点击在此处打开窗口,输入mvn install package(需要是maven项目,官网下载的spring boot初始项目自己配置了),完成后进去target目录找到jar包,现在我们直接在服务器上面运行java -jar jar-name是可以的,访问项目地址测试成功,继续将jar包封装成docker image,这个时候我们需要在jar包的同一目录新建一个Dockerfile(必须是这个名称)文件
DSC0000.png

  Dockerfile内容:
  # 基于哪个镜像
FROM java:8
  # 将本地文件夹挂载到当前容器
VOLUME /home/container
  # 拷贝文件到容器,也可以直接写成ADD eureka-server-0.0.1-SNAPSHOT.jar /app.jar
# 这个地方jar包名称改成自己的jar名称
ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
  # 开放1111端口
EXPOSE 1111
  # 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  实际就是执行的linux命令,容器有自己一套独立的环境,实现了环境的隔离,后面不管在什么环境下,我们pull下这个镜像就可以直接运行
  然后打包镜像 docker build -t eureka-server .   //eureka-server是镜像名称可以自己定,最后的一个.不要省略了,他是用来找到Dockerfile文件的,不然会打包不成功的
  打包完成后运行docker images查看镜像,发现有我们的eureka-server镜像了
  将镜像运行在容器中:docker run -d -p 1111:1111 eureka-server  //-d 表示后台运行,-p是端口映射
  成功后查看正在运行容器: docker ps 发现eureka-server已经运行起来,访问http://IP1:1111就出现了我们熟悉的注册中心的界面了,bingo
  普通服务是一样的,放在另一台服务器上面(当然也可以放在同一台服务器上面的),启动成功我们就在注册中心页面看到api-gate这个服务已经注册进来了
  这样我们就实现了基本的spring cloud的docker化,当然如果你会打包docker镜像了就会发现每次都要打包很烦很烦,需求驱动你需要做持续集成了,还有界面化的管理等等

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421057-1-1.html 上篇帖子: Docker 总结 下篇帖子: Centos7安装Docker 基于Dockerfile 搭建httpd运行环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表