idea连接docker实现一键部署的方法_docker

这篇文章主要介绍了idea连接docker实现一键部署的方法,本文给大家介绍的非常详细,对大家的学习

idea连接docker实现一键部署的方法_docker

这篇文章主要介绍了idea连接docker实现一键部署的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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插件参数

-DskipDockerBuild to skip image build
-DskipDockerTag to skip image tag
-DskipDockerPush to 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.jb51.net/article/161964.htm

到此这篇关于idea连接docker实现一键部署的文章就介绍到这了,更多相关idea连接docker一键部署内容请搜索3399IT网以前的文章或继续浏览下面的相关文章希望大家以后多多支持3399IT网!

本文为网络共享文章,如有侵权请联系邮箱485837881@qq.com

作者: 伊布拉西莫

为您推荐

返回顶部