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

本贴最后更新于 1800 天前,其中的信息可能已经物是人非

在 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 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖 • 3 关注
  • Docker

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

    492 引用 • 926 回帖
  • CentOS

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

    238 引用 • 224 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone
    作者

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

  • 其他回帖
  • vinasis

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

  • someone
    作者

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

  • someone
    作者

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

  • 查看全部回帖