docker更新jar包的两种方式

docker更新jar包方式

在上一篇文章说到部署jar包到docker,但是有一个问题,就是如果项目更新,则需要重新打包镜像,然后运行容器等等一系列操作,比较繁琐,所以这次介绍的方式比较简洁,没有繁琐的步骤。

方式一:

1.编写Dockerfile

FROM java:8
EXPOSE 8888
ENTRYPOINT ["java","-jar","/usr/data/hello-2.0.0-SNAPSHOT.jar"]

这里的第三个参数“/usr/data/hello-2.0.0-SNAPSHOT.jar”,表示jar包在容器中的位置。
然后我们每次更新项目的时候直接取这个位置更新jar包就行了,如果觉得每次进入容器更新jar包比较麻烦,可以在创建容器的时候将这个目录挂载出去,这样我们可以直接操作宿主机挂载的文件夹就可以了。

2.制作镜像
docker build -t hello:demo .

注意后面的点(.)表示Dockerfile文件所在的位置,点代表在当前位置。

3.创建容器
docker run -di --name=mydemo -p 8000:8888 -v /usr/local/apps/hello:/usr/data

-v :文件夹挂载,这样我们之后更新jar包的时候可以直接在宿主机中操作,而不需要进去容器

4.完成并测试

到这里就搞定了,接下来就是测试了,将新的jar包放入宿主机的/usr/local/apps/hello目录,重新启动该容器即可。

这种方式比较简单,但是有一个缺点就是更新的jar包名字必须和之前Dockerfile中配置的一样,所以下面第二种方式就可以解决这个问题。

方式二:

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 容器名
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值