Docker中部署微服务

== 本文共分三部分 ==
Docker Compose编排工具的使用
微服务项目与Docker的整合
微服务项目的部署方式

Docker Compose编排工具

1.简介 对于Docker,部署一个应用时需要写一个DockerFile文件构建镜像,然后启动再进行访问;但是对于微服务来讲,其子项目可能会很多,并且不易更新维护,所以Docker提供Compse工具来定义和运行多容器!
2.安装与卸载
当当当~安装之前需要依赖于Docker引擎哦
安装命令

curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

卸载命令

sudo rm /usr/local/bin/docker-compose

验证是否安装成功
在这里插入图片描述
ps:出现未安装VMware Tools;连接工具未能使用;下载文件无法下载;等问题时,可以选择拷别人的文件然后放到对应的文件夹中,如果遇到权限拒绝问题时,在命令行里,输入sudo nautilus;之后输入你的用户的密码,会弹出一个目录窗口来,可以复制到这里来的,在这里也可以删掉root的文件;

Docker与微服务的整合

微服务与Dockers的整合可以大致分为以下三步
1 添加DockerFile文件
Docker中应用部署于容器—>容器由镜像生成—>镜像通过DockerFile文件生成,所以我们需要为微服务中的每一个服务都构建一个DockerFile(这里我们用的是商城管理系统的项目,可以到我的上一篇微服务整合中去看哦)
Docker中部署微服务_第1张图片这里我以User子项目为例,添加DockerFile文件,注意其中的名称与端口号,必须要与你项目中的名称和端口号相对应;其余的四个子项目都要添加这样的文件,父工程不用添加
Docker中部署微服务_第2张图片2 *添加dockerfile-maven插件
Docker中部署微服务_第3张图片我们都知道DockerFile编写完后运行它就可以去访问其中的应用了,但是这些DockerFile必须要手动去一个一个的启动访问,maven提供插件去支持与Docker的整合,这也就是为什么要添加插件的原因

3 添加Docker-compose.yml编排文件
这个编排文件是为了解决多个项目在Docker中启动的问题,相当于一个小管家,所以这个编排文件也就写在对应项目的父工程的目录下,其余的子项目是不需要滴~
Docker中部署微服务_第4张图片这个部分呢是将Docker整合到我们完整的项目中去哦!

微服务项目的部署

当当当;终于到要部署项目的时刻了~but 尽管微服务那边已经整合好了,可是要部署的Docker还需要做一点准备呢!我们都知道Docker呢是不依赖于宿主机的环境的,所以就算我宿主机配有完好的jdk;maven环境,对Docker卵用没有.
一 环境准备
1.安装jdk
这里我用的是jdk1.8.0,下载解压配置环境变量
Docker中部署微服务_第5张图片2.安装Maven
我用的是maven-3.5.4,下载解压环境变量
Docker中部署微服务_第6张图片Docker中部署微服务_第7张图片
3.镜像准备
为了能够自动打包,构建镜像和推送镜像,我们在需要在添加插件的时候将标签属性< useMavenSettingsForAuth>设置为true;其次还需要在装了maven的Docker上,配置服务认证信息;具体文件就是maven的conf/settings.xml
Docker中部署微服务_第8张图片4.将父工程导出后复制到虚拟机中的某一目录(自定)进入该项目的pom文件所在地,执行打包命令
Docker中部署微服务_第9张图片

微服务的手动部署

  • 非集群环境下的服务部署
    1)登录私有仓库
    在这里插入图片描述
    2)在编排文件目录下输入命令
    在这里插入图片描述
  • 集群环境下的部署
    1.检查集群是否完好;集群中是否配有私有仓库的地址
    2.集群服务中的网卡选择性注册(我们知道在微服务项目中利用API网关访问的时候有多个地址可访问,但是对应到容器中,智能有一个有效地址去进行访问,这时候就需要对其中的多张网卡上的地址选择性的去注册)
    Docker中部署微服务_第10张图片这里我们可以看到当集群部署完成后,会增加两个如图所注释的网卡,一张是用于集群间的互相通信,一张是用于与外界进行通讯
    3)添加网段信息
    Docker中部署微服务_第11张图片我们知道在eureka服务注册中心要注册的服务共有三个(网关,user,order)所以,我们要在这三个服务的application.xml文件中指明其优先匹配的网段
    4)修改服务部署的编排文件
    Docker中部署微服务_第12张图片这里指定所有的服务都使用该网络进行管理(就是我们之前建的那个哦)
    5)部署服务
    Docker中部署微服务_第13张图片6)查看微服务在集群节点的分配与启动情况
    Docker中部署微服务_第14张图片
  1. 微服务测试界面
    Docker中部署微服务_第15张图片
    在这里我们可以看出我的服务是部署于manager与worker节点上的,绿色的点表示服务部署正常
    查看服务注册中心Docker中部署微服务_第16张图片
    8)安装Mysql客户端
sudo apt install mysql-client-core-5.7

9)通过客户端连接数据库

mysql -h 127.0.0.1 -uroot -p

10)微服务测试
Docker中部署微服务_第17张图片

使用Jenkins自动部署微服务

1.下载安装Jenkins
Docker中部署微服务_第18张图片

2.启动服务,访问页面
Docker中部署微服务_第19张图片
Docker中部署微服务_第20张图片
3.寻找初始密码并输入
在这里插入图片描述
4.输入
Docker中部署微服务_第21张图片
5.初始化插件安装
Docker中部署微服务_第22张图片
6.创建管理员用户
Docker中部署微服务_第23张图片
7.主页面
Docker中部署微服务_第24张图片
8.Jenkins集成插件配置
Docker中部署微服务_第25张图片
Docker中部署微服务_第26张图片
Docker中部署微服务_第27张图片
Docker中部署微服务_第28张图片
8.服务自动化部署
构建新任务
Docker中部署微服务_第29张图片
配置源码仓库地址
Docker中部署微服务_第30张图片
构建触发器
Docker中部署微服务_第31张图片
服务发布配置
Docker中部署微服务_第32张图片
任务配置完成
Docker中部署微服务_第33张图片
自动化配置服务
Docker中部署微服务_第34张图片
当控制台输出部署信息时,说明部署成功
Docker中部署微服务_第35张图片

待更···············
错误
Docker中部署微服务_第36张图片
分析:大意是到某一个子项目工程时打包出现问题,推断与本地仓库有关,因为此前我设置过一次本地仓库,但是那个地址与现在的不一样,并且我登录不上去,所以。。。。。。重新配置一下;
步骤:
1)查看本地镜像,发现有registry,说明我的本地registry是起来的,主要问题是我之前配的安全认证与现在的地址不一,所以删掉之前配置的文件,重新配置密钥及认证
Docker中部署微服务_第37张图片
2)启动本地镜像服务
Docker中部署微服务_第38张图片
3)执行打包命令
Docker中部署微服务_第39张图片
说是没有打包凭证我现在已经改好了选项目中的对应地址,并且本地私有仓库安全配置也已经完成,这里的凭证问题应该是docker上装的maven的那个配置文件中的凭证,点击打开maven的setting.xml文件,添加认证
Docker中部署微服务_第40张图片
4)再次打包
Docker中部署微服务_第41张图片
哭辽~~~~~~~~~~~~~~~

你可能感兴趣的:(微服务基础架构)