如何通过docker启动Java的jar包

13 篇文章 0 订阅
10 篇文章 0 订阅

1.下载JDK的容器

docker pull java

2.运行Java的jar包.运行的步骤
将jar包和配置文件放到统一一个文件夹内(配置文件指的是application.yml等这类的配置文件.如果不使用外部文件的话,可以无视)
通过docker启动jar包.启动规则为
docker run -d -p 外部端口:你的配置文件中的端口 -v /project(你的jar包和配置文件的所在目录比如文件在/project/Hellword.jar,我就把project文件挂载进去就可以了):/home(容器的路径,我直接放到了home下) --name Hellword java(这个java指的是容器的名字) java -jar /home/Hellword.jar --spring.profiles.active=local 后面这个指的是外部的命令修改application.yml文件中的参数.进行外部的引用.灵活性会比较高

在Centos上创建完后,有的人会出现如下问题
root@637fe9ea94f0:/usr/Downloads# ls
ls: cannot open directory ‘.’: Permission denied
解决办法:
原因是CentOS7中的安全模块selinux把权限禁掉了,
有以下几种方式解决挂载的目录没有权限的问题:
1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数:
docker run -i -t -v /soft:/soft --privileged=true 637fe9ea94f0 /bin/bash
2.临时关闭selinux:
setenforce 0
3.添加selinux规则,改变要挂载的目录的安全性文本

docker启动的时候,配置文件读取的时候是根据他当前的启动文件进行查找,也就是说指令为(注意:这是一个可用的指令,请读下面的话)

sudo docker run -p 11111:11111 --name cas -v /home/administrator/project/:/home/ -v /home/administrator/project/config/:/config -it java java -jar /home/cas-api.jar --spring.profiles.active=cas-api

时候,其实在启动的内容中,他是以/ 为根进行查找的.启动的jar路径为/home/cas-api.jar 但是配置文件由于启动的目录为/
所以,查找config的时候是以/config进行查找,但是挂载的时候实际上是挂载到了/home中 所以查找不到,这种情况下会造成启动失败

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值