idea连接docker实现一键部署的方法
#代码知识 发布时间: 2026-01-12
1.修改docker配置文件,打开2375端口
[root@s162 docker]# vim /usr/lib/systemd/system/docker.service #查找 ExecStart,在末尾添加 #后面加上-H tcp://0.0.0.0:2375 [root@s162 docker]# systemctl daemon-reload [root@s162 docker]# systemctl start docker ## 查看2375端口是否启用 [root@s162 docker]# lsof -i:2375 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dockerd 27021 root 5u IPv6 352598799 0t0 TCP *:2375 (LISTEN)
2. Idea安装配置docker插件
2.1. idea-plugins市场安装docker插件
略…
2.2. 配置docker
3.springboot项目部署到docker服务器
3.1. 编写docker/dockerfile
3.2.maven添加docker-maven-plugin插件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--指定生成的镜像名,如果不指定tag,默认会使用latest-->
<imageName>jhs/${project.artifactId}:${project.version}</imageName>
<!--添加额外的指定标签, 非必须-->
<!--
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
-->
<!-- 指定 Dockerfile 路径 :项目根路径下-->
<dockerDirectory>${project.basedir}/docker</dockerDirectory>
<!--指定远程 docker api地址-->
<dockerHost>http://192.168.129.162:2375</dockerHost>
<!-- copy资源 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<!--docker build dockerfile时:设置镜像创建时的变量 -->
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
3.3. docker:build
使用命令$ mvn clean package docker:build -Dmaven.test.skip=true构建镜像,在docker服务器上查看镜像是否上传成功:
3.4 docker:tag
docker命令行格式为:
#docker tag <imageId or imageName> <nexus-hostname>:<repository-port>/<image>:<tag>
插件配置
<configuration>补充配置:
<configuration>
<image>jhs/${project.artifactId}:${project.version}</image>
<!-- docker tag 打标签-->
<newName>192.168.129.160:5000/${project.artifactId}:${project.version}</newName>
</configuration>
为镜像打上tag标签,为后续的push做准备:mvn clean docker:tag -Dmaven.test.skip=true -DskipDockerBuild
3.5 docker:push
插件配置
<configuration>补充配置:
<configuration>
<!-- docker push 推送到远程镜像仓库-->
<!-- serverId: 为在maven setting.xml配置的server信息id-->
<serverId>nexus-docker-registry</serverId>
<registryUrl>192.168.129.160:5000</registryUrl>
<!-- 打上tag的新镜像 push 到nexus-->
<imageName>192.168.129.160:5000/${project.artifactId}</imageName>
</configuration>
将上文打上tag标签的镜像,推送到*nexus:mvn clean docker:push -Dmaven.test.skip=true -DskipDockerBuild -DskipDockerTag
3.6 docker插件参数
-DskipDockerBuildto skip image build-DskipDockerTagto skip image tag-DskipDockerPushto skip image push-DskipDockerto skip any Docker goals
3.7 绑定命令到maven phases
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
<execution>
<id>tag-image</id>
<phase>package</phase>
<goals>
<goal>tag</goal>
</goals>
<configuration>
<image>jhs/${project.artifactId}:${project.version}</image>
<newName>192.168.129.160:5000/${project.artifactId}:${project.version}</newName>
</configuration>
</execution>
<execution>
<id>push-image</id>
<phase>deploy</phase>
<goals>
<goal>push</goal>
</goals>
<configuration>
<!-- docker push 推送到远程镜像仓库-->
<!-- serverId: 为在maven setting.xml配置的server信息id-->
<serverId>nexus-docker-registry</serverId>
<registryUrl>192.168.129.160:5000</registryUrl>
<imageName>192.168.129.160:5000/${project.artifactId}</imageName>
</configuration>
</execution>
</executions>
3.8 最佳实践
<properties>
<docker.host>http://192.168.129.162:2375</docker.host>
<docker.registry.url>192.168.129.160:5000</docker.registry.url>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>dic/${project.artifactId}:${project.version}</imageName>
<!--添加额外的指定标签(可配置多个), 若果没做指定,则为latest-->
<!--
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
-->
<!-- 指定 Dockerfile 路径 :项目根路径下-->
<dockerDirectory>${project.basedir}/docker</dockerDirectory>
<!--指定远程 docker api地址-->
<dockerHost>${docker.host}</dockerHost>
<!-- copy资源 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<!--docker build dockerfile时:设置镜像创建时的变量 -->
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
<execution>
<id>tag-image</id>
<phase>package</phase>
<goals>
<goal>tag</goal>
</goals>
<configuration>
<image>dic/${project.artifactId}:${project.version}</image>
<newName>${docker.registry.url}/${project.artifactId}:${project.version}</newName>
</configuration>
</execution>
<execution>
<id>push-image</id>
<phase>deploy</phase>
<goals>
<goal>push</goal>
</goals>
<configuration>
<!-- docker push 推送到远程镜像仓库-->
<!-- serverId: 为在maven setting.xml配置的server信息id-->
<serverId>nexus-docker-registry</serverId>
<registryUrl>${docker.registry.url}</registryUrl>
<imageName>${docker.registry.url}/${project.artifactId}</imageName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
4.Docker*仓库Harbor安装的步骤详解(补充)
https://www./article/161964.htm
代码知识SEO上一篇 : Python提取视频中图片的示例(按帧、按秒)
下一篇 : python对 MySQL 数据库进行增删改查的脚本
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!