現(xiàn)象:
運(yùn)行一個(gè)image,例如ubuntu14.04:
docker run -it --rm ubuntu:14.04 bash
退出時(shí):
執(zhí)行Ctrl+D或者執(zhí)行exit
查看線程:
發(fā)現(xiàn)為空,說明沒有正在運(yùn)行的容器。
解決方法:
運(yùn)行一個(gè)image:
docker run -dit ubuntu:14.04
![](/d/20211016/877cc85f867444c89e4d9bfc8343f6ea.gif)
查看線程:
![](/d/20211016/fe401374c376608009c30a8457e3d363.gif)
發(fā)現(xiàn)有一個(gè)線程,打開它:
docker attach 【CONTAINER ID或NAMES】
![](/d/20211016/ee5070629c90562f01617ec3ebb639ad.gif)
退出時(shí)如果想繼續(xù)運(yùn)行:按順序按【ctrl+p】,【ctrl+q】
如果不想繼續(xù)運(yùn)行:按【ctrl+d】或輸入exit
另:關(guān)閉后重啟請輸入:docker restart 【CONTAINER ID或NAMES】
補(bǔ)充:Docker - 避免啟動(dòng)container后運(yùn)行shell腳本執(zhí)行完成后docker退出container
最近在使用 Dockerfile 啟動(dòng)容器,發(fā)現(xiàn)使用Dockerfile調(diào)用容器里面的shell,當(dāng)shell執(zhí)行完成以后,docker會(huì)退出容器。
分析
Docker 在執(zhí)行shell的時(shí)候,是在后臺(tái)執(zhí)行的;因此,在shell執(zhí)行完成以后,docker檢測到?jīng)]有前臺(tái)任務(wù)需要執(zhí)行,便退出container.
解決方法
在shell腳本的最后加上一個(gè)“永遠(yuǎn)完成不了”的命令:
這樣當(dāng)執(zhí)行到這條命令的時(shí)候,shell便不會(huì)退出,container也不會(huì)退出。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。