簡介
本文內容有
1、手動清理假死的docker服務
1.1 找到假死的docker服務
執行docker ps
命令找到容器id【container_id】
1.2 先嘗試使用docker自帶的命令停止容器
docker stop 【container_id】
發現停不掉
1.3 手動查詢docker目錄下的容器資訊,並刪掉
docker預設目錄:/var/lib/docker
所有docker容器的資訊都掛載在/var/lib/docker/containers
目錄下
通過【container_id】找到該假死服務的目錄
ll /var/lib/docker/containers | grep 【container_id】
cd /var/lib/docker/containers
rm -rf 目錄名
這裡刪除可能會報下面的錯誤,因為你的容器還掛載了其他目錄,資訊如下:
rm: 無法刪除"/var/lib/docker/containers/目錄名/secrets": 裝置或資源忙
無法刪除"/var/lib/docker/containers/目錄名/shm": 裝置或資源忙
這個時候查一下容器對應的掛載目錄
cat /proc/mounts |grep "docker" |grep "【container_id】"
然後先取消掛載
umount /data/sys/var/docker/containers/掛載目錄/secrets
umount /data/sys/var/docker/containers/掛載目錄/shm
如果這一步 unmout 不了,可以嘗試找到使用該目錄的程序
lsof |grep "掛載目錄"
如果有相關程序,記錄相關的程序號直接 kill -9 程序號
這個時候再重新執行刪除目錄命令
ll /var/lib/docker/containers | grep 【container_id】
cd /var/lib/docker/containers
rm -rf 目錄名
這個時候就可以刪掉了
1.4 再次嘗試通過docker的命令停止容器
docker stop 【container_id】
或
docker rm -f 【container_id】
或docker kill --signal=sigint 【container_id】
如果還是無法停掉改服務,可以按如下步驟:
使用linux程序管理命令來結束容器程序
先找到該程序:
ps -ef | grep【container_id】
強制殺掉篩選出來的程序資訊:
kill -9 pid
1.5 再次檢查docker服務狀態
docker ps
可以看到該服務已經被乾掉了。
1.6 最粗暴的解決方案如下
直接停止docker.service,重啟後自然就好了,如果服務太多,我不建議這樣使用,太慢了,而且影響其他服務。
sudo service restart docker
Docker 磁碟佔滿解決方案
2020 11 16 發現線上服務訪問不了報以下錯誤 登入伺服器df h 檢視docker的overlay已用 100 然後查詢 linux 系統最大的10個檔案 find type f print0 xargs 0 du sort n tail 10 cut f2 xargs i du sh 找出...
「產品」 「服務」 「解決方案」
如題,是關於一些概念的文章。但常常會有同學對這三個含糊不清,甚至混淆。個人認為,是因為這些概念之間很多重疊的地方,但是又並沒有去細緻的研究它們的細微區別。我是從it的視角出發來研究這三者的區別,但是很顯然,這三個概念並不僅僅侷限於某乙個領域。所謂產品,通常是指乙個公司或者研究院開發出來的能夠提供一定...
Docker 監控之 SaaS 解決方案
過去的一年中,關於 docker 的話題從未斷過,而如今,從嘗試 docker 到最終決定使用 docker 的轉化率依然在逐步公升高,關於 docker 的討論更是有增無減。另一方面,大家的注意力也漸漸從 docker 是什麼 轉移到 實踐 docker 與 監控 docker 上。本文 劉斌博文...