能夠參考博客:https://blog.csdn.net/aixiaoyang168/article/details/77453974
java
docker-maven-plugin官網推薦在新項目中使用dockerfile-maven來構建鏡像。git
docker-maven-plugin的Github地址:https://github.com/spotify/docker-maven-plugingithub
dockerfile-maven的Github地址:https://github.com/spotify/dockerfile-mavendocker
1、 使用docker-maven-plugin構建鏡像maven
docker-maven-plugin有兩種使用方式,一種是使用Dockerfile文件,一種是不使用Dockerfile文件。tcp
1.在 POM中指定構建信息(不使用Dockerfile文件)ui
在pom.xml中引入該插件spa
<!-- docker-maven-plugin插件(不帶Dockerfile文件) -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<!--用於指定鏡像名稱-->
<imageName>${project.name}:${project.version}</imageName>
<!--用於指定基礎鏡像,至關於Dockerfile中的FROM指令-->
<baseImage>java</baseImage>
<!--至關於Dockerfile的ENTRYPOINT指令-->
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<!--是否跳過docker build-->
<skipDockerBuild>true</skipDockerBuild>
<resources>
<resource>
<targetPath>/</targetPath>
<!--用於指定須要複製的根目錄,${project.build.directory}表示target目錄-->
<directory>${project.build.directory}</directory>
<!--用於指定須要複製的文件。${project.build.finalName}.jar指的是打包後的jar包文件。-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
默認狀況下,該插件經過訪問localhost:2375來鏈接本地docker,能夠經過設置DOCKER_HOST 環境變量來鏈接docker..net
DOCKER_HOST=tcp://<host>:2375
2.使用Dockerfile文件插件
若是使用Dockerfile文件,必須指定dockerDirectory元素,那麼 baseImage, maintainer, cmd and entryPoint這些元素也會被忽略。dockerDirectory元素所指定的內容將被複制到${project.build.directory}/docker下,resources元素則會複製除此以外的其它文件,例如項目jar文件。
<!--docker-maven-plugin插件(帶Dockerfile文件)--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <imageName>${project.name}:${project.version}</imageName> <!--Dockerfile文件位置--> <dockerDirectory>docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
2、使用
建立鏡像
mvn clean package docker:build
推送鏡像到Registry
mvn clean package docker:build -DpushImage
推送指定tag的鏡像到Registry
mvn clean package docker:build -DpushImageTag
3、綁定Docker 命令到 Maven 各個階段