DockerMaven插件-微服务部署

本地虚拟机的ip地址为:192.168.2.101,如有看到相关地址,请修改为自己本机或虚拟机的ip地址

1、微服务部署

  1. 手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚拟机并拷贝至JDK容器
  2. 通过Maven插件自动部署
    对于数量众多的微服务,手动部署非常麻烦且容易出错,所以建议使用自动部署。

2、自动部署步骤

2.1 修改docker配置

修改宿主机的docker配置,让其可以远程访问

vi /lib/systemd/system/docker.service
在ExecStart=后添加配置 ‐H tcp://0.0.0.0:2375 ‐H unix:///var/run/docker.sock

修改后配置如下:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

刷新配置重启服务:

systemctl daemon-reload
systemctl restart docker
docker start registry

2.2 修改防火墙策略

修改防火墙策略,允许访问2375端口:

firewall-cmd --zone=public --add-port=2375/tcp --permanent #开放2375/tcp端口
firewall-cmd --reload #更新防火墙的设置,使上面的修改生效 

查看防火墙开放状态:

firewall-cmd --zone=public --list-ports #查看所有打开的端口

一定要查看防火墙是否开启,否则一直提示无法连接

2.3 微服务调整

2.3.1 setting.xml配置

这个文件在maven目录下,可以 cd $M2_HOME/conf 进入;
在pluginGroups中增加一个com.spotify,对应groupId中的单位

  
    com.spotify
  

不添加会提示无法找到,一定记得先加好

2.3.2 通过docker-maven-plugin插件

  1. 修改pom.xml文件

                com.spotify
                docker-maven-plugin
                0.4.13
                
                    192.168.2.101:5000/${project.artifactId}:${project.version}
                    jdk1.8
                    ["java", "-jar", "/${project.build.finalName}.jar"]
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                    http://192.168.2.101:2375
                
            

以上配置会自动生成Dockerfile

  1. 推送镜像至远程仓库
mvn clean package docker:build -DpushImage

2.3.3 通过dockerfile-maven-plugin插件(官方推荐)

  1. 修改pom.xml文件
            
                com.spotify
                dockerfile-maven-plugin
                1.4.13
                
                    192.168.2.101:5000/${project.artifactId}
                    ${project.version}
                    
                        target/${project.build.finalName}.jar
                    
                
            

2、创建Dockerfile文件
Dockerfile文件必须在根目录下,与pom.xml文件同级

FROM 192.168.2.101:5000/jdk1.8
EXPOSE 9001
ARG JAR_FILE
ADD $JAR_FILE /demo02.jar
ENTRYPOINT ["java", "-jar", "/demo02.jar"]

3、设置环境变量
环境变量名称:DOCKER_HOST
变量值:tcp://192.168.2.101:2375(根据实际IP地址来)

  1. 推送至远程仓库
mvn clean package dockerfile:build dockerfile:push

2.4 验证

  1. 查看镜像,可以看到刚刚创建的镜像,可以使用镜像创建容器,然后进行验证;
docker run -di --name=mydemo01 -p 9980:8080 192.168.2.101:5000/demo01:0.0.1 /bin/bash

注意:镜像后要追加对应版本

  1. 查看私有仓库,浏览器输入:http://192.168.2.101:5000/v2/_catalog,可以看到私有仓库存在该镜像。

你可能感兴趣的:(DockerMaven插件-微服务部署)