栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【Docker】之部署 SpringBoot 项目

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Docker】之部署 SpringBoot 项目

1、打包 SpringBoot 项目

创建一个 SpringBoot 项目,下面是我的一个测试 demo

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;



@RestController
@RequestMapping("/")
public class TestController {

    @GetMapping("/hello/{info}")
    public String sayHello(@PathVariable("info") String info) {
        return "Hello, " + info;
    }

}

设置端口为 8080:

server:
  port: 8080
  servlet:
    context-path: /

使用 Maven 将项目 Package 打包得到 jar 包:demo-1.0.0.jar


2、编写 Dockerfile

文件名称就叫 Dockerfile,没有后缀:

# 使用 Java8 为基础镜像
FROM java:8
# 指定临时文件挂载目录
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD demo-1.0.0.jar app.jar 
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

配置解释:

FROM:指定基础镜像,如果是第一次打包,它会自动下载 java:8 的镜像,以后再制作镜像的时候就不会再下载了;VOLUME:指定了临时文件目录为 /tmp,其效果是在主机 /var/lib/docker 目录下创建了目录 /tmp,并链接到容器的 /tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要,/tmp 目录用来持久化到 Docker 数据文件夹,因为 SpringBoot 使用的内嵌 Tomcat 容器默认使用 /tmp 作为工作目录;ENTRYPOINT:执行项目 app.jar,为了缩短 Tomcat 启动时间,添加一个系统属性指向 /dev/./urandom 作为 Entropy Source
3、制作镜像


将 jar 包和 Dockerfile 放在同一个目录下:

[user@localhost home]$ ls
-------------------------
demo-1.0.0.jar  Dockerfile

然后执行镜像构建命令(别漏了最后面还有一个点 .):

docker build -t demo4docker .

命令解释:

-t:参数指定镜像的 tag 名;.:指定镜像构建过程中的上下文环境的目录(不是指 Dockerfile 的路径);
4、启动容器


docker run -d --name demo -p 8080:8080 demo4docker

-d:表示让容器后台运行;--name:指定容器运行时的名称;-p:进行端口映射,将服务器的 8080 端口映射到容器中的 8080 端口中。

启动之后访问测试接口:

curl http://localhost:8080/hello/wangingyun
-------------------------------------------
Hello, wangingyun
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/751009.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号