docker在Ubuntu中不能正常啟動的解決辦法
阿新 • • 發佈:2018-12-20
docker有時候會不能正常工作,有時候非得重啟機器才行,確實很麻煩。
根據我的經驗,在Ubuntu中docker出現的一般性問題都比較容易解決。
首先清理docker執行中的所有程序和產生的檔案stop docker,如果用systemctl的話就是systemctl stop docker,remove在/run目錄下所有跟docker相關的東西。
#systemctl stop docker; rm /run/docker*
如果一切正常,docker的程序及其殘留檔案應該被殺死了,這個時候直接執行dockerd
#dockerd
如果能夠出現dockerd在監聽的log證明docker可以正常啟動了,這個時候只有restore docker就好了。如果沒有正常啟動那這一步會提示你出錯的原因,一般的原因為:
kernel issue,module沒有支援之類的錯誤,這時候就需要重新編譯kernel,將缺失的模組編進去。在moby的程式碼下面有一個check指令碼用來檢測環境非常有用。
如果上面的辦法還沒有奏效就只能使用終極大法了,因為這招具有破壞性,一般不建議使用,除非你的docker image之類的東西都不要了。
#systemctl stop docker; rm /run/docker* ; mv /var/lib/docker /var/lib/docker.bk
這招基本會消滅掉docker在執行狀態和靜態的工作目錄。這個時候直接執行dockerd,如果正常啟動,一切OK,如果這招依然沒有奏效,你可以去問問Google了或者洗洗睡吧。