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

  所以我们可以使用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. CEF3研究(三)

    一.Off-Screen Rendering 脱屏绘制 CEF的脱屏渲染并不创建源生的浏览器窗口,而是CEF提供主应用程序在无效区域和像素buffer里渲染,然后主应用程序通过鼠标.键盘和焦点事件通知 ...

  2. [Node.js] Read a File in Node.js with fs.readFile and fs.readFileSync

    We'll read a csv file in node.js both synchronously, and asynchronously. The file we're reading is a ...

  3. 容器使用笔记(List篇)

    上一篇博客介绍了Dictionary,这篇博客介绍List的相关内容. C#中要存储一组数据.我们会想到数组Array,ArrayList,List这三个对象,当中,数组是最早出现的,我们就从数组開始 ...

  4. Deepin-安装vscode

    安装方式有两种: 1.通过命令安装 sudo apt-get install vscode 2.通过deb或rpm包安装 我们是Debian系列的系统,所以用deb包,关于红帽系统,请使用rpm包. ...

  5. <Android>greenrobot-EventBus,guava-Event Bus的异步实现

    刚開始是从otto入手,可是otto不支持异步运行.所以后来才開始研究了Event Bus.关于Event Bus,先前搜索的时候,看到网上的实例,非常碎,并且非常多都是一样的内容,代码看下来基本上是 ...

  6. asp.net mvc的权限管理设计

    现在集中展示用户-角色-权限管理的功能,因此,所有数据表一律简化处理.   1 后台管理效果 (1)角色管理 (2)权限管理   2 数据库设计(MSSQL) (1)用户表dbo.Users 项 类型 ...

  7. 初识mina框架

    step1:创建java工程,导入jar包 step2:在src下配置log4j.properties文件 log4j.rootLogger=DEBUG,MINA,file log4j.appende ...

  8. Linux —— 压缩文件

    Linux——压缩文件 为什么需要压缩文件?    文件在传输过程中,可能由于文件过大,传输所需时间过多.减少文件大小有两个明显的好处,一是可以减    少存储空间,二是通过网络传输文件时,可以减少传 ...

  9. 谈谈TensorFlow with CPU support or TensorFlow with GPU support(图文详解)

    不多说,直接上干货! You must choose one of the following types of TensorFlow to install: TensorFlow with CPU ...

  10. 李洪强iOS开发之录音和播放实现

    李洪强iOS开发之录音和播放实现 //首先导入框架后,导入头文件.以下内容为托控件,在storyboard中拖出两个按钮为录音和播放按钮 //创建一个UIViewController在.h文件中写 # ...