记录利用Docker打包的第一个可运行jar包

本文详述了使用Docker将Java项目打包成可运行jar的过程,包括编写简单Java项目、配置Dockerfile、解决镜像下载问题等关键步骤。

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

记录利用Docker打包的第一个可运行jar包

利用docker对jar包大成可运行镜像文件的过程中踩了不少的坑,这里进行一个总结,方便大家学习,也方便自己后面复习。

第一步:编写一个简单的打印语句的java项目,编译运行没问题之后导出成jar包。我的是“DockerTest.jar”。
第二步:将jdk和jar包放在同一个文件夹里面,并在该文件夹下面创建一个名为“Dockerfile”文件。我的文件夹是“dockertest”。
第三步:编辑“Dockerfile”文件。文件内容如下:
#--------------
FROM centos

MAINTAINER ceshiuser

COPY jdk1.8.0_201 jdk1.8.0_201
ADD DockerTest.jar app.jar

ENV JAVA_HOME=/jdk1.8.0_201
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENTRYPOINT ["java","-jar","/app.jar"]
#--------------
FROM命令是指定你创建镜像的基镜像,如果基镜像没有被发现,docker会去镜像仓库进行下载
ADD命令是将源系统上面的文件复制到目标容器系统中
ENV是配置环境变量
ENTRYPOINT配置容器启动后执行的命令
此处需要注意一下,如果没有做特殊配置,下载centos基镜像会非常慢甚至会下载超时。
如果遇到“net/http: TLS handshake timeout”,可以参考网友的这篇博文“https://blog.youkuaiyun.com/qq_33575129/article/details/78196279”
我选择的处理方式是,执行命令“gedit /etc/docker/daemon.json”,并将文件中的内容替换为如下内容:
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
此处对我的原文件内容做个备份(这个数据好像也是我之前参考博文添加的):
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
第四步:运行命令“docker build -t dockertest:1.0 .”,注意命令后面有个“.”。如果没有下载过镜像“centos”,此时会进行下载。
第五步:在第四步成功的情况下,执行“docker run -t -i dockertest:1.0 /bin/bash”命令。
如果着整个流程没有问题的话,控制台会打印出,你java文件中编写的那句打印语句。
此时第一个自己编写的java项目的jar包在docker里面运行起来了。

为了打印这么一句简单的“My first docker test!”,费了我不少的精力,踩了不少的坑,最后总算弄出来了,同时也学会了不少的东西,学习新东西的道路本来就是不容易的,实践是我们这一行学习最好的学习方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值