用docker部署Springboot —————— 无需插件

1年前 (2023) 程序员胖胖胖虎阿
114 0 0

因为最近在研究新的项目,打算先用 docker 完成局部。

博客地址:芜风

记一次用docker部署Springboot的经历

0x01 前言

  • 之前看有文章说是用什么什么插件,其实根本没这么麻烦

我是跟着这位师傅的教程走的,但是有几个地方还是不太清晰,也容易踩坑的。挂一下师傅文章的链接:使用 Docker 部署 Spring Boot

  • 不多逼逼,开启正题

0x02 创建一个简单的 Springboot 项目

第一步,先创建一个简单的 Springboot 项目,我这里是用 IDEA 起的,其他也是大同小异吧。过程我就省略了,如果有问题的师傅可以私聊我一下。

接着,我们按照 Springboot 的封装模式来,创建一个 Controller 文件夹,并创建 DockerTestController,在其中添加如下代码。

@RestController  
public class DockerController {  
    @RequestMapping("/hello")  
    public String hello(){  
        return "hello Docker";  
 }  
  
}

用docker部署Springboot —————— 无需插件

  • 我们运行的 application 不需要更改

这里先测试一下,可不可以访问 127.0.0.1:8080/hello

页面是会返回 “hello Docker”

0x03 打包成 jar 文件

打包成 jar 文件很简单,操作如图所示,点击 package 即可。

用docker部署Springboot —————— 无需插件

  • 因为我们的需求是用 docker 部署 springboot 程序,所以我们一定是要把 jar 文件放到装有 docker 的机器上的,我这里用的是 Linux 的机器,Windows 的我还没有用过。

通过 sftp 或者其他的方式传过去。

0x04 重头戏,使用 Docker 部署

1. Dockerfile 的编写

首先我们需要编写 Dockerfile,Dockerfile 的名字就叫 Dockerfile,一个文件夹里面只可以存在一个 Dockerfile,Dockerfile 这里就按照如下写即可,把自己的 jar 文件替换进去。编写如下

FROM openjdk:11   // 这里如果 openjdk 不对就使用 java:11
COPY *.jar /drunkgoat-0.0.1-SNAPSHOT.jar   // 自己的 jar 文件
  
CMD ["--server.port=7000"]   // 自己设置端口
  
EXPOSE 7000   // 对外暴露端口
  
ENTRYPOINT ["java","-jar","/drunkgoat-0.0.1-SNAPSHOT.jar"]

这里算是踩了个坑吧,那位师傅的教程第一行写的是 java:11,然后我 docker build 的时候就一直报这个错误:

manifest for java:11 not found: manifest unknown: manifest unknown

后面换了个角度,用了 openjdk:11 果然可以!

2. 构建自己的镜像(images)

就一句命令

sudo docker build -t springboot-demo .  
// -t 后面是你想给这个容器取的名

用docker部署Springboot —————— 无需插件

  • docker build 这里要怎么分类我还是不太会,如果有懂的师傅可以说一下

3. 运行镜像

同样的,一句命令

docker run -d -p 7000:8080 --name "这里给要 run 中的容器取名" springboot-demo(也就是你前面命名的) dockerid

run 之后,我们通过 docker ps 来查看正在 run 的容器

用docker部署Springboot —————— 无需插件

再访问就通啦!

访问 ip+端口加 hello 接口即可 ~

相关文章

暂无评论

暂无评论...