DockerMaven插件(将Dockerfile的两步操作整合成一步)

微服务部署有两种方法:

  • (1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚 拟机并拷贝至JDK容器。
  • (2)通过Maven插件自动部署。 (推荐)

选型
对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这里学习如何自动部署,这也是企业实际开发中经常使用的方法。

Maven插件自动部署步骤:
(1)修改宿主机的docker配置,让其可以被maven插件远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置‐H tcp://0.0.0.0:2375 ‐H unix:///var/run/docker.sock
0.0.0.0.表示任何ip地址都可以访问
修改后如下:


(2)刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker
docker start registry
(3)在zyh-eureka工程pom.xml增加配置


        app
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
            
                com.spotify
                docker-maven-plugin
                0.4.13
                
                    192.168.1xx.1xx:5000/${project.artifactId}:${project.version}
                    
                    jdk1.8
                    ["java","-jar","/${project.build.finalName}.jar"]
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                    http://192.168.1xx.1xx:2375
                
            
        
    

以上配置会自动生成Dockerfile 方便下一步执行命令进行传输

FROM jdk1.8
ADD app. jar /
ENTRYPOINT ["java","-jar","/app. jar"]

(5)在windows的命令提示符下,进入zyh_eureka工程所在的目录,输入以下命令,进行打包和上传镜像

mvn clean package docker:build ‐DpushImage
//clean 清理
//package 打包
//docker:build代表生成镜像
//‐DpushImage 传到docker

执行后,会有如下输出,代码正在上传


浏览器访问 http://192.168.184.135:5000/v2/_catalog ,输出

{"repositories":["zyh_eureka"]}

(6)进入宿主机 , 查看镜像

docker images

输出如上内容,表示tensquare_eureka微服务已经做成镜像

(7) 启动容器:

docker run -d --name=eureka -p 6868:6868
192.168.184.135: 5000/tensquare eureka:1.0-SNAPSHOT

你可能感兴趣的:(DockerMaven插件(将Dockerfile的两步操作整合成一步))