时间:2021-05-19
最近在看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容器启动后马上退出的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1、问题描述安装在docker容器里面的storage一直处于退出状态,导致文件无法存储。2、解决方案查看docker中安装的容器dockerps-a尝试启动容
容器自启动Docker提供了restartpolicy机制,可以在容器退出或者Docker重启时控制容器能够自启动。这种Restartpolicy可以保证相关容
进入docker容器后如果退出容器,容器就会变成Exited的状态,那么如何退出容器让容器不关闭呢?如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器,
docker容器中切换用户,提示权限不足:解决办法:启动容器是使用特权启动:dockerrun-i-t--privileged-v/home/dora:/hom
在用docker创建mysql容器的时,有时候我们期望容器启动后数据库和表已经自动建好,初始化数据也已自动录入,也就是说容器启动后我们就能直接连上容器中的数据库