首页 新闻 会员 周边

docker如何在后台执行jar代码

0
悬赏园豆:20 [已解决问题] 解决于 2019-07-01 16:27

如下图,我已经创建了docker容器,并进入了容器中。之后我想通过java -jar 命令在后台执行jar包代码,我尝试过在java -jar后面加上&,但是退出终端后程序就结束了。我希望能在关闭此终端后不会使正在运行的java代码终止,我应该怎么做?

cybm的主页 cybm | 初学一级 | 园豆:184
提问于:2019-07-01 13:35
< >
分享
最佳答案
0

docker run 加个-d 参数,docker会将容器放到后台去运行。

收获园豆:20
坤坤 | 小虾三级 |园豆:919 | 2019-07-01 14:10

我run容器的时候就是用的 docker run -itd命令,容器一直没有退出过。就是在用docker exec -it 命令进入容器命令行执行在后台跑jar包之后,用exit退出来后,刚刚跑的jar包进程就退出了。我想让jar包一直执行。

cybm | 园豆:184 (初学一级) | 2019-07-01 14:55

@cybm: 那这个问题,应该从java的角度入手,而不是容器。比如java有么有守护进程之类的操作。

坤坤 | 园豆:919 (小虾三级) | 2019-07-01 15:03

@坤坤: 我用的nohup java -jar &,执行完之后用jobs可以看到代码在后台执行,但是退出后重新exec -it 容器ID/bin/bash 后进去查看jobs又没有了。难道要自己写一个守护进程吗?

cybm | 园豆:184 (初学一级) | 2019-07-01 15:40

我懂了,新建终端好像不能通过jobs来查看之前的进程。可以通过netstat来看端口占用。我测试了一下,我的代码确实现在一直在后台跑着。

cybm | 园豆:184 (初学一级) | 2019-07-01 16:27

@cybm: 你后面查看端口的思路就是对的,或者在看当前的进程。容器没有退出,那就说明docker 运行良好。

坤坤 | 园豆:919 (小虾三级) | 2019-07-02 10:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册