idea集成Docker + Docker部署SpringBoot项目到云服务器 保姆级教程

引言

本人使用资源:

  • 云服务器主机:腾讯云宝塔linux

  • 操作系统:OpenCloudOS 8.6


本文分别讲解了:

  • 1、idea如何集成并使用docker
  • 2、springboot项目如何引入Docker管理
  • 3、如何将一个springboot项目使用Docker打包为一个镜像

不仅讲解了方法,还列出了在整个过程中会遇到的一些问题和注意事项和注意的原因!!看下去,相信你会有所收获!!

此外:


1、idea集成docker

1、安装Docker插件

image-20230509225726620

2、修改云服务器配置,使服务器端允许Docker远程连接
  • 1、使用以下命令编辑docker.service文件

    vim /usr/lib/systemd/system/docker.service
    
  • 2、在该配置文件中添加以下内容

    扫描二维码关注公众号,回复: 15263536 查看本文章
    ExecStart=
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
    
  • 3、去云服务器控制台放行2375端口

    image-20230509230643604

3、在idea中配置Docker连接信息

如下图配置即可。

点击apply即可使用。

image-20230509231039601

4、idea中使用Docker

点击最下方控制台的service就可以看到啦!用起来就很方便!

image-20230509231454191


2、在springBoot项目中如何引入Docker

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

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

注意三个事情:

  • 1、版本务必写成0.4.13

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

    image-20230509232116286

  • 2、注意修改成你的服务器IP地址

  • 3、Dockerfile的位置别乱写

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

    一般就在:

      <dockerDirectory>src/main/docker</dockerDirectory>
    

    因为最后Docker是要根据这个Dockerfile来构建你的项目镜像的,它找的时候就是根据你写在坐标里的目录来找的,所以不要让它找不到呀!

<!--      docker配置-->
      <!-- 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>sxl/${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插件

这个时候就能用啦!!

image-20230509233229937

3、打开控制台,查看服务器上的Docker

打开一看,豁~ 镜像、容器一览无余,真好用啊!!!

之前还累死累活地在命令行里一个一个操作,累死啦!!

image-20230509233123077


3、使用Docker打包SpringBoot项目

前提:像上一步项目中引入Docker坐标。

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


核心操作

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

    Dockerfile文件的位置一定要和pom.xml中docker插件的配置一致。否则找不到!
    
  • 2、编写Dockerfile文件

    在Dockerfile里边你就需要写一下打包镜像的一些配置了,最主要的就是:JDK版本呀、暴露端口呀等等,如下:

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

    注意点

    • Java版本使用openjdk!!!

      使用 java:8 等时会报错,原因未知,好像与服务器的规格有关,我是使用腾讯云宝塔linux,操作系统是:OpenCloudOS 8.6。

      报错信息:

      manifest for java:8 not found : manifest unkown: manifest unknown
      
  • 3、将项目打包为JAR包

    使用Maven的package指令:

    image-20230510001659798

  • 4、点击Build构建镜像

    再等一会儿,就 biubiu~~ 地构建好了。

    image-20230509235525887

  • 5、查看生成的镜像

    就去控制台的service下看。

    我此时生成的镜像如下图所示:

    image-20230509235810594


4、让我的项目使用Docker容器跑起来吧!

书接上文,此时镜像构建完成,那么怎么让它跑起来呢?

命令行的方式就先不提,接着我们看一下在idea里边怎么让它正确跑起来吧!!


总体思路

创建容器 — 启动容器 — 访问项目

(容器跑起来的同时,项目也就跑起来啦!!)


1、创建容器 并 启动容器

就是使用我们打包好的镜像创建一个容器先:

  • 1、选中镜像,右击创建

    image-20230510000317313

  • 2、配置运行参数

    我们点击创建后会进入下边这个页面:

    image-20230510000415448

在这里,我的建议是点击Modify options再点击Run options来配置一下运行参数,并且修改一下容器名

示例:

  • 此时我的容器名:test01

  • 运行参数:

    -d -p 8888:8888
    // -d : 在后台运行该容器
    // -p : 配置端口映射,前一个端口是你云服务器的端口,后一个端口是你容器内部端口。
    //      两者可相同,亦可不同。
    //      重点是记得开通服务器端口的防火墙。
    

image-20230510000716867

最后点击Run就可以运行啦!!!

2、访问项目

此时访问项目的网址为:

http://你的ip地址:端口号

# 注意:此时的端口号是这个容器运行的服务器的端口号。

当然如果是web项目,记得加上自己的路径再访问。

注意点

1、修改项目中Mysql、Redis、RabbitMQ等的配置

当然如果项目中用到了这些技术栈,那就需要将yml文件中的配置改改。就是改成你的云服务器的IP地址、用户名、密码等喽。

image-20230510002627014

当然,Redis、Mysql这些都能使用docker运行在服务器上,很方便,这里就不多展开了。

猜你喜欢

转载自blog.csdn.net/longzaizai_/article/details/130591876