在 idea 里面使用 docker 插件实现 SpringBoot 项目打包部署到阿里云服务器上的 Docker 容器并运行

鼠色猫 的个人博客 记录精彩的程序人生 本文由博客端 https://juneblog.online 主动推送

在 idea 里面使用 docker 插件实现 SpringBoot 项目打包部署到阿里云服务器上的 Docker 容器并运行

为什么要用 Docker

Docker 真的是个好东西啊,自从用了它之后,我什么东西都想往里边儿放,不论是 nginx Solr MySQL Redis 这些,通通放里边儿,管理起来非常好管理,部署也很方便,其实说白了就是懒,哈哈哈哈哈哈哈哈哈哈嗝,相信用过的同学都已经爱不释手了,对于还不会用的同学建议赶快入手!这里我就不多 bb Docker 辣,网上的资料多得很,我直接开始这次的主题吧!

安装 Docker 插件

File > Settings > Plugins > Docker

一般来说 idea 都是自动给我们装好了的,可以直接使用,但不排除某些特殊情况

连接 Docker

在阿里云服务器上部署好 Docker 并确保能正常运行后,在 /usr/lib/systemd/system/doker.service 这个配置文件里面做些修改

在 18 行找到 ExecStart ,在第一行的后面加上

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

变成下面图片中的亚子

保存后退出,并执行一下两条命令

systemctl daemon-reload 
systemctl restart docker

执行成功后 docker 重启

开放端口

因为这里 Docker 是通过 2375 端口进行通信的,所以我们要在阿里云服务器的安全组里面开放 2375 端口

构建 Docker 连接

找到 File > Settings > Build, Execution, Deployment > Docker

打开后点击 + 号创建连接,并在 Engin API URL 这个选框后面将 localhost 改成服务器的公网 ip

下面显示 Connection successful 就说明连接成功了,咱就可以愉快的继续往下走辣

项目打包

在最右侧找到 Maven 后,打开列表,先点击 clean 把项目洗干净后,再点 package 打包,可能会花半分钟多点的时间才搞定,打包完后左边 targer 目录下会有一个 jar 包,我们到时候就是要把这个 jar 包丢到容器里面去并运行

创建 Dockerfile 文件

随后在项目根目录下创建 Dockerfile 配置文件并在里边根据情况输入相应的内容

# 使用java环境

FROM java

# 缓存目录

VOLUME tmp

# 将当前项目的jar包添加到容器中

ADD "target/pms-0.0.1-SNAPSHOT.jar" "RestHome.jar"
# 当容器启动时 执行启动命令

ENTRYPOINT ["java","-jar","RestHome.jar"]


"RestHome.jar" RestHome 是自定义的名字,可以改变

创建配置文件

点击右上角的 Edit Configurations 并新建 Dockerfile 配置,并按照下面提供的图片进行配置

这里面的所有信息可以根据自己的需求来填写,我这里只填写了最基本的内容,但值得注意的是,在 Run options 这里的端口要写自己当前项目的端口,不然容易出问题,至于出什么问题,还要等同学们去走一走才知道,欸嘿嘿。配置完成后点击 Apply 然后点击 OK

执行配置文件

点击刚才那个位置的右边那个绿色三角形运行配置文件,这里会等一段时间,最后我们从控制台看到项目启动成功后,就说明成功了,咱们再去服务器里边儿瞧瞧

最后,咱再通过服务器 ip+ 端口号访问一下这个项目吧

nice baby,整个 SpringBoot 项目打包部署到 Docker 并运行这样一个流程就完成了,是不是特别简单?有什么问题可以在评论区进行互动噢

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    783 引用 • 1368 回帖 • 692 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    345 引用 • 803 回帖 • 478 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    203 引用 • 202 回帖 • 484 关注

赞助商 我要投放

15 回帖
请输入回帖内容 ...
  • fx1156253489

    图片全挂了

  • remixjc

    图片挂了,该更新了

  • someone

    欸,我看着没问题啊,我去检查下

  • vinasis

    Java 环境是使用的宿主机的 Java 环境吗

  • someone

    不是的,Java 环境是使用的容器内的 Java 环境,你从容器的大小就可以看出来

  • ferried

    挂了

  • keppel

    赶紧补图啊,好文

  • csfwff 1

    哦豁 全挂

  • someone

    这是什么原因呢,为什么你们都看不见图片啊 QAQ

  • someone

    图片我是放在阿里云上自己搭的图片服务器里边儿的,技术用的是 fdfs,为什么我自己能看到,而且问了一部分人,他们说也能看到,但是也有部分人看不到,这是什么原因呢

  • fenglinbiaoxie

    是不是 fdfs 服务器满了?启动不了?我们之前的项目就是 fdfs 满了,图片就都裂了LVO3BRN93IZ7PN40.jpg

  • CismonX 1 评论

    图挂了是因为图床不支持 https,直接走 http 访问是没问题的
    楼主文章里面给的是 http 链接,但是黑客派却当作 https 去请求,因此出现了这个问题
    00.png
    01.png
    @88250

    之前专门做过非 HTTPS 图片反代的实现,后来觉得没必要,已经 2020 年了,源站不支持的话就不显示了。
    88250
  • someone

    收到!弟弟立马去证书安排上,蟹蟹大佬

  • someone

    fdfs 没有满噢,前几天刚装上只存了几张图 ♂片,感谢你提出的一个思路,并收下了你的表情包 0w0 楼上那位前辈已经找到问题啦,确实是那样

  • VULCAN2019

    这里大家要注意一个问题,我被坑惨了!!!对外开放端口千万要谨慎啊,我毫不犹豫的开放了 2375 端口,一点安全措施都没做,直接导致我服务器被挂挖矿程序了。。。而且这个病毒还不好杀 QAQ,花了好几个小时才把它搞定了

请输入回帖内容 ...