Docker 無法停止或刪除容器服務問題的解決方案
前言
今天有開發(fā)同學給我反饋說有一個容器服務無法 stop、rm(docker rm -f)和 kill 等操作,也就是說這個容器服務無法終止~
操作步驟
(1)執(zhí)行刪除命令無法刪除docker的目錄:
# ll /var/lib/docker/containers | grep caf8ef20f3c1 # cd /var/lib/docker/containers # rm -rf caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8
這個時候我們會收到這樣的報錯:
rm: 無法刪除"/var/lib/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/secrets": 設備或資源忙
無法刪除"/var/lib/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/shm": 設備或資源忙
(2)從上面報錯我們可以看到“secrets”和“shm”共享掛載導致無法刪除,首先找到掛載的位置,然后取消掛載后,再刪除:
# cat /proc/mounts |grep "docker" |grep "caf8ef20f3c1"
(3)取消掛載:
# umount /data/sys/var/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/secrets # umount /data/sys/var/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/shm
(4)再次查看:
# cat /proc/mounts |grep "docker" |grep "caf8ef20f3c1" //已經(jīng)沒有啦
(5)現(xiàn)在執(zhí)行刪除docker的目錄:
# cd /var/lib/docker/containers # rm -rf caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8
(6)刪除容器服務
現(xiàn)在我們使用 rm 或 kill 來刪除 容器服務:
# docker rm -f caf8ef20f3c1c
或
# docker kill --signal=SIGINT caf8ef20f3c1
如果上面命令運行之后,出現(xiàn)hang住(卡?。┈F(xiàn)象,請重啟docker服務:
# systemctl restart docker
做完以上步驟,所遇問題基本就可以解決了~
補充:Docker容器無法被stop or kill問題
問題過程
某環(huán)境一個mysql容器無法被stop or kill or rm
sudo docker ps | grep mysql 查看該容器
7844250860f8 mysql:5.7.22 "/.r/r docker-entr..." 41 minutes ago Up 8 minutes r-dlrel-mysql-1-66df8f33
使用docker stop / docker kill / docker rm -f 等命令處理后,容器立馬自動重啟
立即查看容器,運行時間為:Up Less than a second,說明容器立馬啟動了
7844250860f8 mysql:5.7.22 "/.r/r docker-entr..." 42 minutes ago Up Less than a second r-dlrel-mysql-1-66df8f33
kill該容器對應的物理進程,依然自動重啟
獲取物理進程方式:1.docker inspect中的 State.Pid字段為物理進程ID; 2.ps 命令
查看容器restart policy,策略為no,即不會自動重啟
如果需要更新運行中容器的restart策略,可以使用該命令:docker update –restart=no my-container
"RestartPolicy": { "Name": "no", "MaximumRetryCount": 0 },
程序員之間神奇的問題解決方式
你是否出現(xiàn)過這種場景:
百思不得其解的問題,當走到同事面前,剛把問題說清楚,自己就恍然大悟了。
問題明明很簡單,但程序運行就是出問題,然后找個同事幫忙檢查下基礎配置,自己又頓悟了。
這次我屬于第一種,剛把問題說完,立馬想起:擦,是容器編排工具Rancher在做調(diào)度,容器掛了之后會自動重啟。
登錄rancher一看,果然如此,”烏龍”問題。雖這次不是問題,但Docker確實有無法stop的問題,資料也很多。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
基于Docker、Nginx和Jenkins實現(xiàn)前端自動化部署
本文主要介紹了搭建Docker+Nginx+Jenkins環(huán)境,用于實現(xiàn)前端自動化部署的流程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07Jenkins整合Docker實現(xiàn)CICD自動化部署的詳細過程(若依項目)
本文介紹了如何使用Jenkins和Docker實現(xiàn)CI/CD自動化部署,文章介紹了環(huán)境準備,包括Jenkins、Docker、JDK、Node和Maven,然后討論了如何配置GitLab環(huán)境并利用Webhooks實現(xiàn)代碼的自動拉取和部署,最后,展示了如何部署前后端分離的項目,并通過實際操作驗證了整個流程的有效性2024-10-10解決docker報錯:docker:invalid?reference?format.
在導入鏡像的時候出現(xiàn)問題:invalid reference format,這里總結下,這篇文章主要給大家介紹了關于解決docker報錯:docker:invalid?reference?format的相關資料,需要的朋友可以參考下2024-01-01docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫的詳細過程
NebulaGraph Studio是一款可以通過Web訪問的開源圖數(shù)據(jù)庫可視化工具,搭配NebulaGraph內(nèi)核使用,提供構圖、數(shù)據(jù)導入、編寫nGQL查詢等一站式服務,這篇文章主要介紹了docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫的詳細過程,感興趣的朋友一起看看吧2023-12-12Centos7安裝docker compse踩過的坑及解決方法
本文,我們介紹如何在centos7環(huán)境下安裝docker-compose, 記錄下安裝過程步驟以及遇到的問題還有解決辦法,感興趣的朋友參考下吧2018-01-01