一般微服务架构会包含若干个微服务,而每个微服务可以有多个实例,如果每个微服务都有手动启停,那么效率就很低、维护量比较大。

  所以我们可以使用Docker Compose来轻松、高效地管理容器。

一、安装Docker Compose

  网上安装方法有很多,附上centos7的链接地址

二、使用Spring Cloud构建微服务

  当然,你也可以使用doubbo框架来构建。项目结构如下图,discovery是服务注册中心,provider是服务生产者,consumer是服务消费者。

  

  本地先启动discovery服务再启动其他两个服务,游览器输入http://localhost:8082/user/test,游览器即可显示用户信息。代码分享到了github,点击这里下载

三、使用Dockerfile构建镜像文件

  虽然使用maven插件来构建Docker镜像更简单一些,但是我是在windows环境下开发的,而docker环境在虚拟机里,所以放弃了。

  1.获取服务的jar包

  修改每个项目的application.yml配置文件,将eureka.client.service-url.defaultZone这个的域名localhost改为discovery,

  因为默认情况下Compose以服务名称作为hostname被其他容器访问,否则其他两个服务无法注册到discovery。

  在项目所在目录打开cmd,执行命令mvn clean package 即可获得对应jar包(操作三次),分别是consumer-0.0.1-SNAPSHOT.jar,discovery-0.0.1-SNAPSHOT.jar,provider-0.0.1-SNAPSHOT.jar,

  然后上传到l服务器/usr/local/docker目录。

  2.构建镜像

  cd /usr/local/docker 进入工作目录

  vi Dockerfile,内容如图

  

  docker build -t provider:0.0.1 .  完成构建

  然后再修改jar包名称 和 端口号,依次构建consumer和discovery。

  输入命令docker images -a ,即可查看刚刚构建的镜像。

四、编写docker-compose.yml文件

  vi docker-compose.yml

  

这里需要注意几点:1.ports这个是必须要加的,不然的话容器启动后在宿主机可以访问,但是外网不能访问。百度docker-compose.yml常用命令了解更多。

         2.还有一个就是容器间网络访问的问题,使用networks命令自定义网络来使它们处于同一个网络环境。

 最后,输入docker-compose up 启动,启动完毕后,在游览器输入http://192.168.75.132:8080/即可看到注册中心(192.168.75.132是我虚拟机的ip):

访问http://192.168.75.132:8082/user/test,即可看到结果(有时候报错,链接超时多试几次)。

至此,大功告成!

使用Docker Compose编排微服务的更多相关文章

  1. 使用Docker compose编排Laravel应用

    前言 Laravel官方开发环境推荐的是Homestead(其实就是一个封装好的Vagrant box),我感觉这个比较重,于是自己用Docker compose编排了一套开发环境,在这里分享下. 环 ...

  2. Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务

    本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...

  3. 使用Docker Compose编排Spring Cloud微服务

    文章目录 微服务构建实例 简化Compose的编写 编排高可用的Eureka Server 编排高可用Spring Cloud微服务集群及动态伸缩 微服务项目名称 项目微服务中的角色 microser ...

  4. SpringCloud微服务实战——搭建企业级开发框架(三十五):SpringCloud + Docker + k8s实现微服务集群打包部署-集群环境部署

    一.集群环境规划配置 生产环境不要使用一主多从,要使用多主多从.这里使用三台主机进行测试一台Master(172.16.20.111),两台Node(172.16.20.112和172.16.20.1 ...

  5. Docker(二十六)-Docker Compose编排容器

    1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...

  6. Docker系列之(五):使用Docker Compose编排容器

    1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...

  7. Docker+Kubernetes(k8s)微服务容器化实践

    第1章 初识微服务微服务的入门,我们从传统的单体架构入手,看看在什么样的环境和需求下一步步走到微服务的,然后再具体了解一下什么才是微服务,让大家对微服务的概念有深入的理解.然后我们一起画一个微服务的架 ...

  8. docker compose 编排

    Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景. 说明:Comp ...

  9. Docker Compose 部署Nginx服务实现负载均衡

    Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Comp ...

随机推荐

  1. Unity从实践中学习(1)

    首先在实际中unity的开发之中快捷键应该是相当重要的一个部分,这里先引用csdn的一个博客,https://blog.csdn.net/qq_34552886/article/details/697 ...

  2. Linux性能诊断工具

    vmstat:虚拟内存状况 –swpd   free  buff  cache   si  so   in   cs 參考:http://www.cnblogs.com/ggjucheng/archi ...

  3. Redis5.0之Stream案例应用解读

    非常高兴有机会和大家在这里交流Redis5.0之Stream应用.今天的分享更多的是一个抛砖引玉,欢迎大家提出更多关于Redis的思考. 首先,我们来个假设,这里有个杯子,这个杯子是去年我老婆送的,送 ...

  4. 2 Angular 2 的核心概念

    一.组件(Components): 组件是构成 Angular 应用的基础和核心,它是一个模板的控制类,用于处理应用和逻辑页面的视图部分.组件知道如何渲染自己及配置依赖注入,并通过一些由属性和方法组成 ...

  5. C++标准库和stl差别

    C++库文件夹:开发工具和语言-visual studio文档-visual C++-參考信息-库參考-standard C++ library C#库文件夹:C#使用.NET Framework 类 ...

  6. ASP.NET MVC 提供与访问 Web Api

    ASP.NET MVC 提供与访问 Web Api 一.提供一个 Web Api 新建一个项目,类型就选 "Web Api".我用的是MVC5,结果生成的项目一大堆东西,还编译不过 ...

  7. Chapter1-data access reloaded:Entity Framework(下)

    1.4 Delving deep into object/relational differences 深入挖掘对象关系的不同 理解面向对象和关系世界的不同是重要的,因为他会影响你设计一个对象模型或者 ...

  8. BZOJ 2243: [SDOI2011]染色 树链剖分+线段树区间合并

    2243: [SDOI2011]染色 Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数 ...

  9. Trie(前缀树)和ternary trie和binary search tree

    1 什么是trie trie是一棵多叉树,假如存放的是由26个字母(不区分大小写)构成的字符串的话,那么就是一棵26叉树. trie树是一棵前缀树,因为每个结点只保存字符串中的一个字符,整个字符串保存 ...

  10. HDU4704:Sum(欧拉降幂公式)

    Input 2 Output 2 Sample Input 2 由公式,ans=2^(N-1)%Mod=2^((N-1)%(Mod-1)+(Mod-1)) %Mod. 注意:降幂的之后再加一个Mod- ...