docker 容器啟動報錯 如何看?我們在docker容器的使用過程中,難免會遇到一些問題??梢园殉R姷膯栴}分為如下幾類。
應用故障:應用執(zhí)行狀態(tài)與預期不一致;
容器故障:無法正確創(chuàng)建、停止、更新容器等;
集群故障:集群創(chuàng)建失敗、更新失敗、無法連接等。
對于初學者而言,一個經(jīng)常遇到的問題是,Docker容器啟動后自動退出,docker logs也沒有特殊輸出。如果容器啟動參數(shù)時包含“–restart=always” 或“–restart”,則會不停重啟。
這個問題常見的原因是,容器的PID1進程(初始化進程)不是一個長時間運行的進程,或者它啟動了一個后臺進程就退出。由于容器服務是以“detach”方式運行容器,這樣當PID1進程結(jié)束后就會導致整個容器退出。
比如,用戶希望啟動一個Ubuntu鏡像。
由于Ubuntu 鏡像缺省命令是“/bin/bash” 它在執(zhí)行后會自動退出,我們需要將在服務的“command”在“更多設(shè)置”中將其修改為/bin/sh -c “while true; do sleep 10; done”這樣的死循環(huán);可以保證容器的持續(xù)運行。
建議用戶在Docker鏡像的Dockerfile中,應該設(shè)置正確的CMD或Entrypoint參數(shù),來保證容器的正確執(zhí)行。