如何通过docker启动Java的jar包
1.下载JDK的容器docker pull java2.运行Java的jar包.运行的步骤将jar包和配置文件放到统一一个文件夹内(配置文件指的是application.yml等这类的配置文件.如果不使用外部文件的话,可以无视)通过docker启动jar包.启动规则为docker run -d -p 外部端口:你的配置文件中的端口-v/project(你的jar包和配置文件的所...
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)