maven构建docker镜像
2019/12/17 10:38 分类: 技术交流 浏览:1
一、 原理分析
由于我们开发pc上面没有docker,所以没办法直接打包镜像,所以要调用远程主机docker进行。并且远程主机docker默认不支持远程访问,所以需要开启远程。然后我们在项目中以docker maven插件方式进行打包镜像。
具体步骤如下:
1 远程主机docker支持远程访问
2 本地项目配置maven docker插件,并允许打包镜像
二 、远程主机docker支持远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
修改后如下(2)刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker
docker start registry
172.16.4.194:2375
防火墙对该端口放行
firewall-cmd --permanent --zone=public --add-port=2375/tcp
systemctl restart firewalld
三 、本地项目配置maven docker插件,并允许打包镜像
3.1 配置docker maven插件
<build> <finalName>eureka</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--这里写上main方法所在类的路径--> <configuration> <mainClass>cn.itsource.hrm.EurekaServer7001Application</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <!--docker的maven插件,官网: https://github.com/spotify/docker‐maven‐plugin--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <imageName>172.16.4.194:5000/${project.artifactId}:${project.version}</imageName> <baseImage>jdk1.8</baseImage> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory} </directory> <include>${project.build.finalName}.jar</include> </resource> </resources> <dockerHost>http://172.16.4.194:2375</dockerHost> </configuration> </plugin> </plugins> </build> |
以上配置会自动生成Dockerfile
FROM jdk1.8
ADD app.jar /
ENTRYPOINT ["java","‐jar","/app.jar"]
3.2 打包镜像并运行容器
3.2.1 打包
在windows的命令提示符下,进入工程hrm_eureka_7001所在的目录
进入Eureka 所在的目录,输入以下命令,进行打包和上传镜像
mvn docker:build ‐DpushImage
3.2.2 查看镜像
进入宿主机 , 查看镜像
输出如上内容,表示微服务已经做成镜像
浏览器访问 http://192.168.184.141:5000/v2/_catalog ,输出
{"repositories":["hrm_eureka"]}
3.2.2 启动容器
docker run ‐di ‐‐name=eureka ‐p 7001:7001
192.168.184.141:5000/hrm_eureka:1.0‐SNAPSHO
赞 0