Spring Boot jar包打包成docker镜像

文章目录

    • 1. 准备好 docker 环境
    • 2. 准备好Spring Boot 项目
        • (1)创建 Spring Boot 项目,并编写简单 controller 测试代码:
        • (2)通过maven将项目打包成jar包
        • (3)jar包在 target目录下
    • 3. 编写 Dockerfile 文件
    • 4.构建镜像
    • 5. 创建容器
    • 6. 测试
    • 7. 查看运行日志

1. 准备好 docker 环境

安装好docker即可,不同操作系统教程不同(建议百度)
安装教程:gitbook教程

2. 准备好Spring Boot 项目

(1)创建 Spring Boot 项目,并编写简单 controller 测试代码:
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        return "hello docker plugin";
    }
}
(2)通过maven将项目打包成jar包

Spring Boot jar包打包成docker镜像_第1张图片

(3)jar包在 target目录下

Spring Boot jar包打包成docker镜像_第2张图片

3. 编写 Dockerfile 文件

  • 创建空文件夹,并将上面的jar包放到文件夹中
  • 同时创建无后缀名的 Dockerfile 文件
    Spring Boot jar包打包成docker镜像_第3张图片
  • 编写 Dockerfile 文件
FROM java:8
VOLUME /tmp
ADD docker-maven-plugin-demo-0.0.1-SNAPSHOT.jar docker-app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/docker-app.jar"]

解释:

  • FROM:表示基础镜像
  • VOLUME /tmp创建/tmp目录并持久化到Docker数据文件夹
  • 拷贝文件并且重命名(ADD docker-maven-plugin-demo-0.0.1-SNAPSHOT.jardocker-app.jar 将应用jar包复制到 /docker-app.jar)
  • EXPOSE:建立image的人员告诉容器布署人员容器应该映射哪个端口给外界
  • ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

Tip:更多命令请参考 gitbook教程

4.构建镜像

路径:在当前文件夹内!!!(不要漏掉.)

docker build -t docker-app .

执行完毕成功后,便能看到镜像中多了自己构建的:
Spring Boot jar包打包成docker镜像_第4张图片

5. 创建容器

docker run -di --name 容器名称 -p 8080:8080 镜像名称

# 我执行的命令
docker run -id --name docker-boot-hello -p 8080:8080 4f78a8bc80ac

构建成功后,查看运行中的容器:
在这里插入图片描述

6. 测试

访问能够得到结果,部署成功
Spring Boot jar包打包成docker镜像_第5张图片

7. 查看运行日志

docker logs -f --tail=100 978adfe45364

Spring Boot jar包打包成docker镜像_第6张图片

你可能感兴趣的:(用法总结,docker,linux,jar,java)