docker之更新jar问题
Dockerfile
# Docker image for springboot file run # VERSION 0.0.1 # Author: eangulee # 基础镜像使用java FROM java:8 # 作者 MAINTAINER eangulee <eangulee@gmail.com> # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/data/dockerlearn.jar"]
这里的第四个参数 /data/dockerlearn.jar,表示jar包在容器中的位置。
镜像文件

jar放在data里面

1.生成镜像 注意 点
docker build -t dockerlearn .
2.创建容器 可能未启动
docker run --name dockerlearn -it -v /home/app/dockerlearn:/data -d -p 8088:8088 dockerlearn
- -- name dockerlearn :容器名
- -v /home/app/dockerlearn :挂载到主机该目录下
- -p 8088:8088 dockerlearn :映射端口号,和镜像名称
3.然后启动容器
docker start dockerlearn
4.这样每次更新的jar包时,将新jar包放入宿主机的“/home/app/dockerlearn”目录下即可。
5.然后docker stop启动的容器,然后再docker start容器就可以了。就将新的应用进行了发布。
把 jar 放到到该目录下

方式二
1.编写一个sh脚本
名字自己随便取一个,我这里文件名叫“hello.sh”,内容如下:
java -jar /usr/data/hello-2.0.0-SNAPSHOT.jar
文件存放到与宿主机挂载的容器内部文件夹中
2.编写Dockerfile文件
FROM java:8 EXPOSE 8888 CMD ["sh","-c","/usr/data/hello.sh"]
CMD [“sh”,"-c","/data/eurekaclient.sh"] 就是在容器启动时启动上一步创建的.sh脚本。
3.制作镜像
docker build -t hello:demo .
4.创建容器
docker run -di --name=mydemo -p 8000:8888 -v /usr/local/apps/hello:/usr/data
5.完成并测试
这样,就完成了,如果后面更新jar的话,直接将新的jar包替换到宿主机挂载的目录下即可,如果文件名发生改变的话,可以直接修改sh脚本文件即可。更新完jar包之后记得需要重启容器:
docker restart 容器名
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
docker安装Elasticsearch7.6集群并设置密码的方法步骤
本文主要介绍了docker安装Elasticsearch7.6集群并设置密码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-10-10
dockerfile的使用及使用dockerfile部署springboot项目的过程
Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本,这篇文章主要介绍了dockerfile的使用,使用dockerfile部署springboot项目,需要的朋友可以参考下2023-04-04
docker打包镜像后EasyExcel报错,dockerfile缺少字体的解决
解决Docker打包镜像后EasyExcel报错的问题:1. Dockerfile增加字体配置;2. 使用EasyExcel的write时添加"inMemory"参数为true,开启内存处理模式(不推荐,1W数据以内可以考虑)2025-02-02
Docker与docker-compose中volume参数的使用方式
文章介绍了Docker中的数据卷Volume的概念及其在宿主机和容器之间的数据共享和持久化,它详细说明了两种数据挂载方式:通过宿主机绝对路径挂载和通过卷标映射挂载,包括匿名挂载和具名挂载,同时,文章还展示了如何通过docker命令查看数据卷的宿主机目录2024-11-11


最新评论