Docker - 避免启动container后运行shell脚本执行完成后docker退出container
问题
最近在使用 Dockerfile 启动容器,发现使用Dockerfile调用容器里面的shell,当shell执行完成以后,docker会退出容器。
分析
Docker 在执行shell的时候,是在后台执行的;因此,在shell执行完成以后,docker检测到没有前台任务需要执行,便退出container.
解决方法
在shell脚本的最后加上一个“永远完成不了”的命令:
# tail -f /dev/null
这样当执行到这条命令的时候,shell便不会退出,container也不会退出。