問題
最近在使用 Dockerfile 啟動容器,發現使用Dockerfile調用容器里面的shell,當shell執行完成以后,docker會退出容器。
分析
Docker 在執行shell的時候,是在后台執行的;因此,在shell執行完成以后,docker檢測到沒有前台任務需要執行,便退出container.
解決方法
在shell腳本的最后加上一個“永遠完成不了”的命令:
# tail -f /dev/null
這樣當執行到這條命令的時候,shell便不會退出,container也不會退出。