IDEA通过Docker插件部署SpringBoot项目

1、配置Docker远程连接端口

找到并编辑服务器上的docker.service文件。

bash 复制代码
vim /usr/lib/systemd/system/docker.service

在下面ExecStart替换成下面的

bash 复制代码
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

2.重启docker

bash 复制代码
systemctl daemon-reload
service docker restart

3.服务器开放端口

4.测试远程连接是否正常

bash 复制代码
curl http://localhost:2375/version

有以下信息输出说明配置成功

5.使用IDEA插件连接到阿里云服务器的Docker容器

连接成功就可以在idea里面使用docker了

6.在springboot项目中引入docker

1、pom.xml中添加Docker插件坐标

这是为了在本项目中引入docker来管理,毕竟最后要使用docker把项目打包成一个镜像。

注意三个事情:

1.版本务必写成0.4.13

其他版本会报错,原因未知,如下图:

2.注意修改成你的服务器IP地址
3.Dockerfile的位置别乱写

位置写在哪儿,就把Dockerfile创建在哪里。

一般就在:

xml 复制代码
  <dockerDirectory>src/main/docker</dockerDirectory>

pom文件需要引入的坐标

xml 复制代码
      <!-- docker插件-->
      <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>0.4.13</version>
        <dependencies>
          <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1</version>
          </dependency>
        </dependencies>

        <configuration>
          <!-- 远程Docker的地址 -->
          <dockerHost>http://你的服务器ip地址:2375</dockerHost>
          <!-- 镜像名称、前缀、项目名 -->
          <imageName>hcl/${project.artifactId}</imageName>
          <!-- Dockerfile的位置 -->
          <dockerDirectory>src/main/docker</dockerDirectory>
          <resources>
            <resource>
              <targetPath>/</targetPath>
              <!-- 表示的target文件夹 -->
              <directory>${project.build.directory}</directory>
              <!-- 表示打出来的JAR包-->
              <include>${project.build.finalName}.jar</include>
            </resource>
          </resources>
        </configuration>
      </plugin>

2.刷新maven,查看docker插件

7、使用Docker打包SpringBoot项目

前提 :像上一步项目中引入Docker坐标。
目的 :就是将SpringBoot项目打包为一个Docker镜像,以便后续将镜像扔在服务器上,构建容器,最后将项目跑起来(也就是把容器跑起来)。

核心操作:

1.创建Dockerfile文件(在正确的位置)

bash 复制代码
 Dockerfile文件的位置一定要和pom.xml中docker插件的配置一致。否则找不到!

2.编写Dockerfile文件

bash 复制代码
FROM openjdk:8-jre
# java版本,最好使用openjdk,而不是类似于Java:1.8 这种。
# 原因我也不知。
COPY *.jar /app.jar
# 执行创建app.jar
EXPOSE 9999
# 向外暴露的接口,最好与项目yml文件中的端口一致
ENTRYPOINT ["java","-jar","app.jar"]
# 执行启动命令java -jar

注意点

Java版本: 使用openjdk!!!

使用 java:8 等时会报错,原因未知。
报错信息:

bash 复制代码
manifest for java:8 not found : manifest unkown: manifest unknown

3.将项目打包为JAR包

4.点击Build构建镜像

5.查看生成镜像

8.使用docker运行springBoot项目

1.选中镜像创建容器

2.配置运行参数

配置玩参数点击运行

3.使用浏览器访问

注意:记得开启项目的端口号

相关推荐
MC丶科7 小时前
【SpringBoot常见报错与解决方案】中文乱码?Spring Boot 统一解决前后端中文乱码问题(含 Postman 测试)!别再百度“加 UTF-8”了!
spring boot·后端·postman
XXOOXRT11 小时前
基于SpringBoot的加法计算器
java·spring boot·后端·html5
Echoo华地14 小时前
idea运行程序默认线程为daemon线程的问题
java·ide·intellij-idea
Coder_Boy_14 小时前
基于SpringAI的在线考试系统-DDD业务领域模块设计思路
java·数据库·人工智能·spring boot·ddd
乙酸氧铍15 小时前
【imx6ul 学习笔记】Docker 运行百问网 imx6ul_qemu
linux·docker·arm·qemu·imx6ul
ℳ₯㎕ddzོꦿ࿐17 小时前
Docker 环境下 Paperless-ngx 中文增强版部署实战
运维·docker·容器
Voyager_417 小时前
StringRedisTemplate 和 RedisTemplate 的区别是什么?
java·spring boot
小北方城市网18 小时前
SpringBoot 全局异常处理与接口规范实战:打造健壮可维护接口
java·spring boot·redis·后端·python·spring·缓存
烤麻辣烫18 小时前
java进阶--刷题与详解-2
java·开发语言·学习·intellij-idea
Chan1618 小时前
【 微服务SpringCloud | 方案设计 】
java·spring boot·微服务·云原生·架构·intellij-idea