第一次利用容器编排技术部署微服务项目

93 阅读3分钟

注意:这里需要清楚dockerfile、docker-compose技术

一 项目打包制作镜像

image.png

package:

  package来打包项目的时候,会在项目中生成一个target文件夹;

  web项目会在该目录下打war包;Java项目会在该目录下打jar包;

 

install:

使用install方式就是将项目转换成为maven依赖存放在本地maven仓库中。比如项目使用install后存在我本地maven仓库中路径是:D:\maven3.5\repository\com\项目名

install包含了package的功能;

如果项目A依赖项目B,项目A执行package的时候可能会报错,因为找不到依赖B,此时要用install命令;项目B打包到Maven的仓库,此时项目A可以正常依赖!!!

这里犹豫我们是maven多模块项目需要使用父类中的以来因此我们是install命令来打包

image.png 这里我们指定每个服务打包后的名称为app方便后期dockefile制作

image.png

image.png

image.png

image.png

这里我们分别用了COPY和ADD命令 两者区别如下: COPY命令格式为COPY [--chown=:] <源路径1>... <目标路径> ,功能是复制指令,从上下文目录中复制文件或者目录到容器里指定路径。而ADD指令的命令格式跟COPY相同。其中上下文目录指的是docker build 命令的 PATH 或 URL 指定的路径中的文件的集合。

ADD在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>,但在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

当版本1.0的Docker发布时,包含了新的COPY指令。与ADD不同的是,COPY直接将文件和文件夹从构建上下文复制到容器中。COPY不支持URL作为参数,因此它不能用于从远程位置下载文件。任何想要复制到容器中的东西都必须存在于本地构建上下文中。

另外,COPY对压缩文件没有特别的处理。如果您复制归档文件,它将完全按照出现在构建上下文中的方式落入容器中,而不会尝试解压缩它。

COPY 命令是为最基本的用法设计的,概念清晰,操作简单。而 ADD 命令基本上是 COPY 命令的超集,可以实现一些方便、酷炫的拷贝操作。ADD 命令在增加了功能的同时也增加了使用它的复杂度,比如从 url 拷贝压缩文件时弊大于利。在不用自动解压工作或者添加远程文件到镜像中,同样需求下,官方推荐使用 COPY进行指令操作

至此我们dockerfile文件制作完成 二.docker-compose制作及部署启动

image.png 这里可以看到我们总共启动四个服务,nacos注册中心我提前已经启动好了 这里提一下build指令为构建镜像 ports设置对外访问端口 默认为后台启动

image.png 至此我们的微服务部署就已经完成了 需要注意的是我们每次重新部署时需要手动删除image镜像 docker-compos down只是停止并删除容器 接下来我们测试看看是否成功 利用docker-compose logs命令查看日志

image.png 可以看到容器已经启动成功

image.png nacos中也已注册成功

image.png 接口测试成功

为此我们成功完成微服务的部署与测试,这里我们只是记录docker-compose微服务部署步骤,当然还有很多设置我们也都没有做,比如日志挂载,文件上传等后期我们会陆续更新。 如果有收获,请点赞支持一下哈!!!