介绍
github地址:
maven是一个项目依赖管理和构建的工具,dockerfile-maven-plugin是一个maven的插件,主要作用是在项目构建的时候生成基于项目的docker镜像文件。
简而言之,此插件将maven和docker进行集成。
正常情况下,我们在开发了一个应用程序后,会使用maven进行打包,生成对应的jar文件。而后,会使用docker将jar文件build成一个镜像(docker image)。之后,就可以在docker daemon中创建基于镜像的容器,并可提供服务了。
dockerfile-maven-plugin的目标就是将maven的打包过程和docker的build过程结合在一起,当成功打包,既生成了对应的jar,也已生成了对应的docker镜像。
Docker开启远程安全访问
参考:
1. 编辑docker.service文件
vi /usr/lib/systemd/system/docker.service
找到 [Service] 节点,修改 ExecStart 属性,增加 -H tcp://0.0.0.0:2375
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
2. 重新加载Docker配置生效
systemctl daemon-reload
systemctl restart docker
3. 验证
我们通过浏览器访问 2375 测试一下,格式为:http://ip:2375/version
如果无法访问的话,可以尝试一下开放防火墙2375端口,具体命令如下
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd –reload
这样我们就可以直接在Idea中的Docker插件中直接连接测试了:
配置步骤
1.pom文件配置
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${dockerfile-maven-version}</version>
<configuration>
<!—image name-->
<repository>springboot-plugin</repository>
<!—image version-->
<tag>${project.version}</tag>
</configuration>
</plugin>
2.DockerFile
FROM openjdk:8-jre
MAINTAINER David Flemström <dflemstr@spotify.com>
ENTRYPOINT ["/usr/bin/java", "-jar", "/usr/share/myservice/myservice.jar"]
# Add Maven dependencies (not shaded into the artifact; Docker-cached)
ADD target/lib /usr/share/myservice/lib
# Add the service itself
ARG JAR_FILE
ADD target/${JAR_FILE} /usr/share/myservice/myservice.jar
运行
1. 执行命令
mvn clean package
mvn dockerfile:build
2. 登录Docker服务器,查看刚才打的镜像是否存在
docker images
3. 执行运行镜像命令
docker run –d –p 8080:8080 springboot-plugin:1.0.0