使用Docker Compose编排微服务
一般微服务架构会包含若干个微服务,而每个微服务可以有多个实例,如果每个微服务都有手动启停,那么效率就很低、维护量比较大。
所以我们可以使用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编排微服务的更多相关文章
- 使用Docker compose编排Laravel应用
前言 Laravel官方开发环境推荐的是Homestead(其实就是一个封装好的Vagrant box),我感觉这个比较重,于是自己用Docker compose编排了一套开发环境,在这里分享下. 环 ...
- Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务
本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...
- 使用Docker Compose编排Spring Cloud微服务
文章目录 微服务构建实例 简化Compose的编写 编排高可用的Eureka Server 编排高可用Spring Cloud微服务集群及动态伸缩 微服务项目名称 项目微服务中的角色 microser ...
- SpringCloud微服务实战——搭建企业级开发框架(三十五):SpringCloud + Docker + k8s实现微服务集群打包部署-集群环境部署
一.集群环境规划配置 生产环境不要使用一主多从,要使用多主多从.这里使用三台主机进行测试一台Master(172.16.20.111),两台Node(172.16.20.112和172.16.20.1 ...
- Docker(二十六)-Docker Compose编排容器
1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...
- Docker系列之(五):使用Docker Compose编排容器
1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...
- Docker+Kubernetes(k8s)微服务容器化实践
第1章 初识微服务微服务的入门,我们从传统的单体架构入手,看看在什么样的环境和需求下一步步走到微服务的,然后再具体了解一下什么才是微服务,让大家对微服务的概念有深入的理解.然后我们一起画一个微服务的架 ...
- docker compose 编排
Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景. 说明:Comp ...
- Docker Compose 部署Nginx服务实现负载均衡
Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Comp ...
随机推荐
- CEF3研究(三)
一.Off-Screen Rendering 脱屏绘制 CEF的脱屏渲染并不创建源生的浏览器窗口,而是CEF提供主应用程序在无效区域和像素buffer里渲染,然后主应用程序通过鼠标.键盘和焦点事件通知 ...
- [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 ...
- 容器使用笔记(List篇)
上一篇博客介绍了Dictionary,这篇博客介绍List的相关内容. C#中要存储一组数据.我们会想到数组Array,ArrayList,List这三个对象,当中,数组是最早出现的,我们就从数组開始 ...
- Deepin-安装vscode
安装方式有两种: 1.通过命令安装 sudo apt-get install vscode 2.通过deb或rpm包安装 我们是Debian系列的系统,所以用deb包,关于红帽系统,请使用rpm包. ...
- <Android>greenrobot-EventBus,guava-Event Bus的异步实现
刚開始是从otto入手,可是otto不支持异步运行.所以后来才開始研究了Event Bus.关于Event Bus,先前搜索的时候,看到网上的实例,非常碎,并且非常多都是一样的内容,代码看下来基本上是 ...
- asp.net mvc的权限管理设计
现在集中展示用户-角色-权限管理的功能,因此,所有数据表一律简化处理. 1 后台管理效果 (1)角色管理 (2)权限管理 2 数据库设计(MSSQL) (1)用户表dbo.Users 项 类型 ...
- 初识mina框架
step1:创建java工程,导入jar包 step2:在src下配置log4j.properties文件 log4j.rootLogger=DEBUG,MINA,file log4j.appende ...
- Linux —— 压缩文件
Linux——压缩文件 为什么需要压缩文件? 文件在传输过程中,可能由于文件过大,传输所需时间过多.减少文件大小有两个明显的好处,一是可以减 少存储空间,二是通过网络传输文件时,可以减少传 ...
- 谈谈TensorFlow with CPU support or TensorFlow with GPU support(图文详解)
不多说,直接上干货! You must choose one of the following types of TensorFlow to install: TensorFlow with CPU ...
- 李洪强iOS开发之录音和播放实现
李洪强iOS开发之录音和播放实现 //首先导入框架后,导入头文件.以下内容为托控件,在storyboard中拖出两个按钮为录音和播放按钮 //创建一个UIViewController在.h文件中写 # ...