Docker-Maven插件的使用
-
修改宿主机的 Docker 配置,让其可以远程访问
vi /usr/lib/systemd/system/docker.service # CentOS ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock # Ubuntu ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
-
刷新配置,重启服务
sudo systemctl daemon-reload sudo systemctl restart docker # 启动私有仓库容器 docker start ContainerRegistry
-
检查docker是否监听2375端口
netstat -anp|grep 2375
-
在 pom.xml 添加 docker-maven 插件配置
<!-- docker的maven插件,
maven 地址:https://mvnrepository.com/artifact/com.spotify/docker-maven-plugin
官网:https://github.com/spotify/docker-maven-plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--提交到私有仓库地址-->
<registryUrl>123.207.4.93:5000</registryUrl>
<pushImage>true</pushImage>
<!--生成的镜像名称,镜像名称,只能有 a-z 小写字母,0-9 ,下划线"_",和点"." 组成
123.207.4.93:5000表示仓库地址,
mir-docker表示镜像名,
1.0.0表示镜像版本,如果不指定,docker有该镜像名,版本号自动更替,没有版本号为latest-->
<imageName>123.207.4.93:5000/mir-docker</imageName>
<!--基础镜像,相当于 Dockerfile 中的 from-->
<baseImage>java</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://123.207.4.93:2375</dockerHost>
</configuration>
</plugin>
以上配置会自动生成 Dockerfile 文件
-
生成并 Push 到服务器上就 OK 了
mvn clean package docker:build -DpushImage