docker创建java镜像文件总结 快速上手

该文详细介绍了如何使用Docker创建Java应用程序镜像,特别是SpringBoot项目。首先,将项目打包成JAR,然后在同一个目录下创建Dockerfile,设置基础镜像为ascdc/jdk8,配置时间,复制JAR到镜像并暴露端口。通过`dockerbuild`命令构建镜像,最后以后台模式运行并访问应用接口。高级方式则涉及启动脚本,将更多启动命令集成到Dockerfile中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker创建java镜像文件总结 快速上手

本例子使用my-docker-demo-springboot 项目作为java程序项目,本例子前提是已经搭建好docker环境

  • 基础方式
  • 高级方式

基础方式

已经将项目打包成可执行的jar文件

在这里插入图片描述

jar包放入一个工作文件夹内

在这里插入图片描述

在这个文件夹里新建Dockerfile文件用来创建镜像

在这里插入图片描述

Dockerfile文件内容

FROM ascdc/jdk8  #使用基础镜像 ascdc/jdk8
MAINTAINER liuyijiang #说明镜像的作者信息
WORKDIR "/data/service"
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone #配置容器时间
COPY my-docker-demo-springboot.jar my-docker-demo-springboot.jar #当前文件夹内的jar包 加到镜像打包的文件夹下
EXPOSE 5678 容器暴露端口5678
ENTRYPOINT ["nohup","java","-jar","my-docker-demo-springboot.jar","&"]
 一个较为复杂的java启动命令 ENTRYPOINT ["java","-Xmx512M","-Xms256M","-XX:+UseG1GC","-Xss256k","-XX:-PrintGC" ,"-XX:+PrintGCDetails" ,"-XX:+PrintGCApplicationStoppedTime" ,"-XX:+PrintGCApplicationConcurrentTime" ,"-XX:+PrintGCTimeStamps" ,"-XX:+PrintGCDateStamps" , "-XX:+HeapDumpOnOutOfMemoryError" ,"-Xloggc:/data/service/logs/gc.log" , "-jar","saas-task-server.jar"]

利用docker build命令创建镜像

docker build -t [镜像名称] .  //注意最后面的那个. 表示当前路径

在这里插入图片描述

可以看到镜像已经创建完成

在这里插入图片描述

运行镜像

docker run -d -p 5999:5588 springboot   #-d 表示后台启动
docker exec -it [容器id] /bin/bash  #进入容器

在这里插入图片描述

查看镜像日志

在这里插入图片描述

访问接口 http://192.168.0.210:5999/echo?name=kkkea 可以看到数据

高级的方式

高级方式主要是不同是在于启动程序的方式

这里使用的是用户中心的例子 dockerfile如下,主要是启动脚本也放入镜像中这样可以支持更多的启动命令

FROM registry.cn-chengdu.aliyuncs.com/medcrab-dev/centosjdk8:v1
VOLUME ["/data/service/logs","/docker/tmp"] 
WORKDIR "/data/service"
LABEL base.name="用户中心" 
LABEL base.desc="实现用户的统一登录验证" 
COPY medcrab-user-server.jar medcrab-user-server.jar
COPY start.sh start.sh
ENTRYPOINT ["sh","start.sh"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寂寞的4角钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值