idea怎么快速实现将SpringBoot项目打包Docker镜像并部署
1.修改docker的配置文件
修改文件信息路径如下:
/etc/docker/daemon.json
在配置文件中添加以下内容:
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
注意:如果没有这个daemon.json,就自己在/etc/docker/目录下创建一个
touch daemon.json
tcp是开启远程访问,unix是本机访问,不开启本机访问,在服务器上使用时会有以下错误:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
修改完成之后依次执行以下命令:
#重新加载配置文件 systemctl daemon-reload # 重启服务 systemctl restart docker.service # 查看端口是否开启 默认端口2375 netstat -anp|grep 2375
2.配置端口开放
依次执行以下命令
添加指定需要开放的端口: firewall-cmd --zone=public --add-port=2375/tcp --permanent 重载入添加的端口: firewall-cmd --reload 查询指定端口是否开启成功: firewall-cmd --query-port=2375/tcp
注意:以上配置全是在防火墙开启的情况下进行,如果未开启系统防火墙,则无需以上配置,比如我的服务器就 没有配置防火墙,运行时则显示以下信息:
最后我们看看我们的配置是否生效
curl http://127.0.0.1:2375/info
如果出现 以下信息则说明配置成功
3.IDEA安装Docker插件
如果你的idea版本较高,则内置了docker插件
如果没有也不要担心,我们自行安装即可
4.IDEA配置docker
注意:我上面的192.168.1.2是我自己的服务器Ip,只需修改成你的docker所在服务器ip即可
点击Apply之后会在你的service中弹出
点击连接,我们就会发现我们docker配置的容器信息
5.SpringBoot整合Docker配置
5.1 安装pom依赖
安装插件:Docker-maven-plugin
<!--docker-maven-plugin插件打包--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!--镜像名称--> <imageName>${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像jdk1.8--> <baseImage>java</baseImage> <!--制作者提供本人信息--> <maintainer>ninesun@qq.com</maintainer> <!--切换到Root目录--> <workdir>/ROOT</workdir> <cmd>["java", "-version"]</cmd> <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint> <!--指定DockerFile路径--> <!-- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--指定远程docker api地址--> <dockerHost>http://192.168.1.2:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/ROOT</targetPath> <!--用于指定需要复制的根目录--> <directory>${project.build.directory}</directory> <!--用于指定需要复制的jar文件--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
我所有的maven配置如下:
4.0.0 org.springframework.boot spring-boot-starter-parent 2.6.6 com.example docker 0.0.1-SNAPSHOT docker docker 11 true true org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test <!--docker-maven-plugin插件打包--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!--镜像名称--> <imageName>${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像jdk1.8--> <baseImage>java</baseImage> <!--制作者提供本人信息--> <maintainer>ninesun@qq.com</maintainer> <!--切换到Root目录--> <workdir>/ROOT</workdir> <cmd>["java", "-version"]</cmd> <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint> <!--指定DockerFile路径--> <!-- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--指定远程docker api地址--> <dockerHost>http://192.168.1.2:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/ROOT</targetPath> <!--用于指定需要复制的根目录--> <directory>${project.build.directory}</directory> <!--用于指定需要复制的jar文件--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> org.springframework.boot spring-boot-maven-plugin
注意:在我们拉取插件成功之后,我们会发现目录结构变成如下所示 :
我们需要删除一个启动类,否则会导致打包失败,我将DockerApplication直接删除了
5.2 build镜像
在build镜像之前,我们需要先进行项目的打包操作
通过cmd进入到我们的项目目录
执行
mvn docker:build
出现 以下信息表示打包成功
接下来回到我们的idea,可以看到
这个就是我们打包好的镜像
在服务器上执行
docker images
也可以看到该镜像的信息
5.3 启动镜像
在我们服务器内执行
docker run -d --name idea-docker-test -p 8089:8080 docker
注:我之所以暴露出8089端口,只要是因为8080冲突了,自己看自己的情况改就好
接下来我们访问一下我们写的测试接口:
可以看到已经部署成功,同时也可访问成功了
我们可以看到在 Idea里也可看到我们刚刚启动成功的镜像以及输出的日志了
以上是idea怎么快速实现将SpringBoot项目打包Docker镜像并部署的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Docker 中导入镜像涉及从远程仓库获取预构建的容器映像,并将其导入本地仓库。步骤包括:拉取镜像(docker pull)列出已拉取镜像(docker images)导入镜像到本地仓库(docker import)

要停止 Docker 网络连接,请按照以下步骤操作:1. 确定要停止的网络名称;2. 使用 docker network stop 命令停止网络;3. 检查停止状态,以验证网络已停止。

Docker 拉取镜像时可自定义设置,包括:指定镜像版本、镜像仓库、限速拉取、身份验证和拉取无标签镜像。这些设置可通过 docker pull 命令及其选项实现,包括 --registry、--limit-rate、--auth 和 -a。

Docker 进程查看方法:1. Docker CLI 命令:docker ps;2. Systemd CLI 命令:systemctl status docker;3. Docker Compose CLI 命令:docker-compose ps;4. Process Explorer(Windows);5. /proc 目录(Linux)。

当 Docker 仓库挂掉时,您可以采取以下措施:检查网络连接和重启 Docker 服务;使用本地镜像或尝试替代仓库;创建自己的仓库或联系仓库提供商。

退出 Docker 容器的方法:运行 docker stop <容器名称或 ID> 命令向 Docker 守护进程发送停止请求。守护进程向容器发送 SIGTERM 信号以可控退出,如果 10 秒内未退出,则发送 SIGKILL 信号强制退出。

通过使用 Docker,您可以将应用程序打包为可移植的映像,以在不同环境中快速部署。首先创建包含应用程序及其依赖项的 Docker 镜像,然后运行 Docker 容器。要部署应用程序,请公开容器的端口。此外,建议使用版本控制、持续集成和监控工具来增强您的 Docker 部署。

要更换 Docker 镜像源,请编辑 Docker 配置文件并添加 "registry-mirrors" 项,指定要使用的镜像源 URL。保存配置文件并重新启动 Docker 服务。通过检查 Docker 信息或拉取镜像,可以验证镜像源是否已更新。
