频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
docker 运行 springCloud项目教程
2018-08-14 15:28:32           
收藏   我要投稿

一. 准备工作

关于Docker的内容与入门命令实现已经在其他文章里详细介绍了,这里就不再多说。本篇文章主要详细讲解如何使用Docker部署Spring Cloud项目。

本文采用的工程来自前面文章的工程eureka-server和eureka-client,我们将采用maven的方式去构建项目,并采用docker-maven-plugin去构建docker镜像。

二. 具体实现

首先改造eureka-server工程,在pom.xml上加上插件:


org.springframework.boot

spring-boot-maven-plugin

com.spotify

docker-maven-plugin

1.0.0

${docker.image.prefix}/${project.artifactId}

java

["java", "-jar", "/${project.build.finalName}.jar"]

/

${project.build.directory}

${project.build.finalName}.jar

简单说明一下插件的配置:

· imageName指定了镜像的名称,“/”前面是仓库名称,后面是镜像名称,也可以再加上标签名称;

· resources是指那些需要和Dockerfile放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入。resources.resource.directory用于指定需要复制的根目录,${project.build.directory}表示target目录,resources.resource.include用于指定需要复制的文件,${project.build.finalName}.jar指的是打包后的jar包文件。

然后修改application.properties配置文件:



server.port=8761

eureka.instance.prefer-ip-address=true

# 代表不向注册中心注册自己

eureka.client.register-with-eureka=false

# 由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以设置为false

eureka.client.fetch-registry=false

最后使用maven命令构建镜像:

mvn clean package docker:build

这样运行后eureka-server镜像就构建完成。

eureka-client镜像的构建也类似。pom.xml的一样加上插件配置,Dockerfile文件的编写也类似,然后修改application.properties配置文件:



spring.application.name=hello-service

# host改为镜像名

eureka.client.serviceUrl.defaultZone=https://eureka-server:8761/eureka

server.port=8763

eureka.instance.prefer-ip-address=true

eureka.instance.instance-id=${spring.application.name}:${random.int}

注意上面的host要改为eureka-server镜像名。

最后同样使用maven构建镜像:


mvn clean package docker:build
到这里eureka-server和eureka-client镜像已经都构建好了,接着使用命令行启动镜像:


# 启动服务器

docker run --name eureka-server -p 8761:8761 -t dan/eureka-server

# 注册服务

docker run --link eureka-server:8761 -p 8763:8763 -t dan/eureka-client

运行起来后就能看到之前一样的内容了。

三. 使用docker-compose启动镜像

我们从上面实现知道,可以使用Dockerfile(或Maven)构建镜像,然后使用docker命令操作容器,例如docker run、docker stop等。然而,使用微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例。如果每个微服务都要手动启停,那么效率之低、维护量之大可想而知。这时就需要使用Docker Compose了。

Docker Compose 是一个用于定义和运行多容器的Docker应用的工具。使用Compose,你可以在一个配置文件(yaml格式)中配置你应用的服务,然后使用一个命令,即可创建并启动配置中引用的所有服务。

接下来我们来使用docker-compose编排启动我们之前第九篇文章中的微服务工程。

微服务列表如下:

· eureka-server

· eureka-client

· service-ribbon

· service-feign

· service-zuul

3.1 构建镜像

首先按照上面的方法为每个工程构建镜像,分别修改pom.xml、application.properties和Dockerfile。

3.2 使用docker-compose编排并启动镜像

创建docker-compose.yml,编写内容:



version: '3'

services:

eureka-server:

image: dan/eureka-server

ports:

- "8761:8761"

hello-service:

image: dan/eureka-client

ports:

- 8763

links:

- eureka-server

service-ribbon:

image: dan/service-ribbon

ports:

- "8764:8764"

links:

- eureka-server

service-feign:

image: dan/service-feign

ports:

- "8765:8765"

links:

- eureka-server

service-zuul:

image: dan/service-zuul

ports:

- "8769:8769"

links:

- eureka-server

最后执行命令启动镜像:

docker-compose up
使用浏览器访问https://localhost:8761/看到,所有服务都注册了:

\

如果要增加或减少docker实例,直接使用docker-compose scale hello-service=3修改实例数;停止运行则使用docker-compose stop即可。

源码下载:https://github.com/lingd3/SpringCloudLearning/tree/master/chapter12

点击复制链接 与好友分享!回本站首页
上一篇:python global语句解析
下一篇:K8s集群搭建教程
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站