前言
我们之前的项目是在本地运行的,现在我想把我的一个 SpringBoot 项目部署到服务器上去,来让别人可以访问到,这就需要我们使用 Docker 的容器化技术,部署我们的项目。
一,创建 SpringBoot 项目
部署一个项目的前提,是你得先有一个项目吧,那我们就先创建一个 SpringBoot 项目吧!
控制器
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping("/test")
public String test() {
return "hello";
}
}
配置文件
server.port=8082
二,打包我们的项目
三,把 jar 包上传至服务器
在这里,我通过 WinSCP 把 jar 包上传至服务器
四,编写 Dockerfile 文件
在这里,我默认大家已经了解了 Docker 与 Linux 的基础知识,如果不是特别了解的话,可以去看一下我的其他博客。
我们新建一个目录,把 jar 包上传到这个目录上,然后在此目录下编写 Dockerfile 文件:
FROM java:8
VOLUME /tmp
ADD demo.jar mytest.jar
RUN bash -c 'touch /mytest.jar'
ENTRYPOINT ["java","-jar","/mytest.jar"]
下面我来解释一下这个文件的具体含义:
- FROM java:8 基础镜像使用 java
- VOLUME /tmp 指定了临时文件目录为 /tmp,其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的 /tmp,/tmp 目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用 /tmp 作为工作目录
- ADD demo.jar mytest.jar 项目的 jar 文件作为 mytest.jar 被添加到容器
- RUN bash -c ‘touch /mytest.jar’ ENTRYPOINT [“java”,"-jar","/mytest.jar"] 运行 jar 包
现在我们的目录如下:
五,制作镜像
[root@VM-0-4-centos mytest]# docker build -t mytest .
六,启动容器
[root@VM-0-4-centos mytest]# docker run -d -p 8082:8082 mytest
七,访问网站
我们直接在浏览器进行访问
显然,可以访问成功,表示我们使用 Docker 部署一个 SpringBoot 项目的任务圆满完成。