简介:用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(必须是这个名称)文件

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镜像了就会发现每次都要打包很烦很烦,需求驱动你需要做持续集成了,还有界面化的管理等等

将spring cloud打包docker镜像的更多相关文章

  1. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  2. 使用Spring Cloud和Docker构建微服务架构

    原文:https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do 作者:Alexander Lukyan ...

  3. 《Spring Cloud与Docker微服务架构实战》配套代码

    不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...

  4. 手把手教你用Spring Cloud和Docker构建微服务

    什么是Spring Cloud? Spring Cloud 是Pivotal提供的用于简化分布式系统构建的工具集.Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接 ...

  5. 使用 Spring Cloud 和 Docker 构建微服务架构

    如何使用Spring Boot.Spring Cloud.Docker和Netflix的一些开源工具来构建一个微服务架构. 本文通过使用Spring Boot.Spring Cloud和Docker构 ...

  6. Spring Cloud和Docker搭建微服务平台

    用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...

  7. Spring Cloud与Docker微服务架构实战 PDF版 内含目录

    Spring Cloud与Docker微服务架构实战  目录 1 微服务架构概述 1 1.1 单体应用架构存在的问题1 1.2 如何解决单体应用架构存在的问题3 1.3 什么是微服务3 1.4 微服务 ...

  8. Spring Cloud,Docker书籍资源、优秀博文等记录

    Spring Cloud,Docker书籍资源.优秀博文等记录 Spring Cloud,Docker书籍资源.优秀博文等记录 一.书籍 二.博文地址 三.思维导图Or图片 3.1一张图总结 Dock ...

  9. Spring Cloud与Docker——微服务架构概述

    Spring Cloud与Docker--微服务架构概述 单体应用架构概述 微服务概述 微服务的特性 微服务架构的优点 微服务面临的挑战 微服务的设计原则 单体应用架构概述 传统的服务发布都是采用单体 ...

随机推荐

  1. GoldenGate 传统抽取进程的 ADG 模式

    :first-child { margin-top: 0; } blockquote > :last-child { margin-bottom: 0; } img { border: 0; m ...

  2. 安装第三方包web.py发生的错误

    今天新学到了python的模块方面的内容,我的版本是python2.7.13 想安装第三方包web.py的时候, 命令提示符 输入 pip install web.py 总是提示如下错误 You ar ...

  3. Java Web(一) Servlet详解!!

    这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本个人觉得很棒的书,<Java Web 整合开发王者归来>,现在写的这一系列基 ...

  4. HTTP协议详解【转】

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  5. 在CentOS 7中安装Redis 3.2.8

    文章环境: CentOS 7 biuld 1611最小化安装@VMware Redis 3.2.8 安装步骤: #安装gcc yum -y install gcc #下载redis curl -O h ...

  6. DevExpreess汉化使用方法及汉化包

    1.在程序入口加入代码: System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.Cultu ...

  7. gridView 单元格绑定不同控件方法

    1.主要代码: private void Form3_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Col ...

  8. Java实现GB2312文件转UTF8文件

    有些书带的光盘的源代码是GB2312编码.通常IDE的编码是UTF8.这样直接导入IDE会乱码. 这时候就需要把GB2312的文件转成UTF8的文件.转化的思路很简单,读入流初始化的时候告诉jvm是G ...

  9. WebSocket浅析(一):实现群聊功能

    首先WebSocket打破了传统的web请求响应模式,实现管道式的实时通信,并且可以持续连接. 相对于传统 HTTP 每次请求-应答都需要客户端与服务端建立连接的模式,WebSocket 是类似 So ...

  10. 最近发现的.net core中的一些bugs

    1.使用.net core的过程中发现TypeInfo.GetCustomAttributes()只能写在主线程中,否则如果该自定义特性存在于nuget中就会报错,貌似nuget中的dll仅在主线程使 ...