服务器 
首页 > 服务器 > 浏览文章

解决docker容器启动后马上退出的问题

(编辑:jimmy 日期: 2024/6/27 浏览:3 次 )

最近在看docker如何让容器在启动时直接运行某些进程,后来发现Dockerfile可以在容器启动的时候指定容器运行命令。

CMD指定,但是每个Dockerfile只能有一条CMD指令,如果指定了多条CMD指定,只有最后一条会被执行。

于是就想了一个办法,在写了一个脚本,在脚本里面启动多个进程,在Dockerfile里运行这个脚本。

最后证明这个方法是可行的,在实验过程中遇到一个问题,容器启动后会马上停止。

经查阅资料:

Docker容器同时只能管理一个进程,如果这个进程退出那么容器也就退出了,但这不表示容器只能运行一个进程(其他进程可在后台运行),但是要使容器不退出必须有一个前台执行的进程。

解决方法:

脚本中最后一个进程一定要用前台运行方式即在进程最后不加&(&表示后台运行),否则容器会退出。

补充知识:在docker容器中使用gdbserver发生的问题及解决办法

在docker容器中使用gdbserver时遇到一个问题

linux_ptrace_test_ret_to_nx: Cannot PTRACE_TRACEME:operation not permmit

原因是Docker默认禁用PTRACE功能,需要在容器运行时开启。

docker run -ti --cap-add=SYS_PTRACE ubuntu

以上这篇解决docker容器启动后马上退出的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

上一篇:Linux上定位后台服务偶发崩溃的解决方法
下一篇:解决docker使用GDB,无法进入断点的问题
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。