欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker服務假死的解決方法

 更新時間:2023年12月05日 09:11:52   作者:鯤志說  
工作中使用docker-compose部署容器,有時候會出現使用docker-compose stop或docker-compose down命令想停掉容器,但是依然無法停止或者一直卡頓在停止中的階段,所以本文給大家介紹了docker服務假死的解決方法,需要的朋友可以參考下

問題描述

在使用docker部署服務時,偶爾會遇到docker服務假死的情況,使用的命令如下:

  • docker ps 顯示容器狀態(tài)正常,但是對外服務已經不可用不可訪問
  • docker stats 沒有任何反應
  • docker stop CONTAINER_ID 也沒有任何反應
  • docker restart CONTAINER_ID 也沒有任何反應
  • docker exec -it --user root CONTAINER_ID /bin/bash 也沒有任何反應
  • docker logs CONTAINER_ID --tail 111 -f 也沒有任何反應
  • docker-compose stop/down 命令也提示響應超時,不可用

問題排查

之前沒有遇到過這種問題,也是第一次,于是就各種信息都看一下,各種可能性也都考慮到位

猜測這種情況,可能是由于容器內部的問題導致服務無法正常運行,或者Docker守護進程本身出現了問題。

  • 查看容器內部日志(我的容器日志也沒有問題)
  • 使用以下命令查看容器內的stdout和stderr輸出,以獲取有關容器內部問題的更多信息。
docker logs CONTAINER_ID
  • 使用-f選項可以實時跟蹤日志
docker logs -f CONTAINER_ID
  • 檢查宿主機資源: 使用以下命令檢查宿主機的資源使用情況,確保資源(CPU、內存)沒有被耗盡(我的沒有問題)
docker stats
  • 查看Docker守護進程狀態(tài)(我的容器依然處于運行狀態(tài))
  • 檢查Docker守護進程的運行狀態(tài),確保它沒有出現問題。
sudo systemctl status docker
  • 如果守護進程出現問題,可以嘗試重啟Docker服務
sudo systemctl restart docker
  • 手動停止和啟動容器: 嘗試手動停止和啟動容器,看是否能夠解決問題。(我的問題么有解決啊??)
docker stop CONTAINER_ID
docker start CONTAINER_ID
  • 檢查端口沖突: 確保容器所使用的端口沒有被其他進程占用。(不可能,絕對不可能.jpg)
  • 查看系統日志: 查看系統日志以獲取更多關于系統或Docker的問題的信息。(說實話么有看出來什么問題)
dmesg | grep -i docker
  • 查看網絡配置(正常的網絡狀況,網絡配置也沒有修改)
  • 檢查Docker網絡配置,確保網絡正常。
docker network ls
  • 查看容器的網絡配置
docker inspect CONTAINER_ID | grep NetworkMode
  • 查看防火墻設置: 如果使用防火墻,確保容器所需的端口沒有被阻塞。

  • 嘗試重啟Docker服務: 如果以上方法都沒有解決問題,可以嘗試重啟整個Docker服務。(終極大招,管用?。?/p>

sudo systemctl restart docker

問題解決

終極殺招-最粗暴的解決方法

  •  重啟docker(慎用):
sudo systemctl restart docker

要注意,這個操作會把所有的docker服務無差別的重啟,慎用

手動清理假死的docker服務

  1. 找到假死的docker服務:執(zhí)行docker ps命令找到容器ID【CONTAINER_ID】
  2. 先嘗試使用docker自帶的命令停止容器docker stop 【CONTAINER_ID】 發(fā)現停不掉
  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
  1. 刪除該容器

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/掛載目錄/secretsumount /data/sys/var/docker/containers/掛載目錄/shm

如果這一步 unmout 不了,可以嘗試找到使用該目錄的進程

lsof |grep "掛載目錄"

如果有相關進程,記錄相關的進程號直接 kill -9 進程號

ll /var/lib/docker/containers | grep 【CONTAINER_ID】

這個時候再重新執(zhí)行刪除目錄命令

cd /var/lib/docker/containers
rm -rf 目錄名

這個時候就可以刪掉了

  • 再次嘗試通過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. 再次檢查docker服務狀態(tài) docker ps

先可以看到該服務已經被干掉了。

如果說按照這個操作依然無法解決docker假死問題,那么我還是建議大家采用上面最粗暴的方式去解決,但是要注意,這個操作會把所有的docker服務無差別的重啟。

以上就是docker服務假死的解決方法的詳細內容,更多關于docker服務假死的資料請關注腳本之家其它相關文章!

相關文章

  • docker中通過nginx+confd動態(tài)生成配置的解決方案

    docker中通過nginx+confd動態(tài)生成配置的解決方案

    這篇文章主要介紹了docker:nginx+confd動態(tài)生成配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • dockerfile結合go應用程序的簡單應用代碼示例

    dockerfile結合go應用程序的簡單應用代碼示例

    Dockerfile文件是一個包含了指令和參數的文本文件,用于自動化構建Docker鏡像,這篇文章主要給大家介紹了關于dockerfile結合go應用程序的簡單應用,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • docker垃圾清理方式

    docker垃圾清理方式

    文章主要介紹了如何刪除Docker鏡像和容器、清理Docker磁盤空間以及配置Docker日志大小,通過這些方法可以有效地管理Docker資源,避免磁盤空間不足的問題
    2025-03-03
  • MongoDB docker集群配置小結

    MongoDB docker集群配置小結

    本文主要介紹了MongoDB docker集群配置小結,主要包括如何配置MongoDB的三個節(jié)點,以及如何使用Docker Compose快速搭建集群,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 通過Dockerfile構建Docker鏡像的方法步驟

    通過Dockerfile構建Docker鏡像的方法步驟

    這篇文章主要介紹了通過Dockerfile構建Docker鏡像的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • 詳解Docker 容器跨主機多網段通信解決方案

    詳解Docker 容器跨主機多網段通信解決方案

    這篇文章主要介紹了Docker 容器跨主機多網段通信解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • docker安裝mysql、redis鏡像方式

    docker安裝mysql、redis鏡像方式

    這篇文章主要介紹了docker安裝mysql、redis鏡像方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • docker kubernetes dashboard安裝部署詳細介紹

    docker kubernetes dashboard安裝部署詳細介紹

    這篇文章主要介紹了docker kubernetes dashboard安裝部署詳細介紹的相關資料,需要的朋友可以參考下
    2016-10-10
  • 關于docker?cgroups資源限制的問題

    關于docker?cgroups資源限制的問題

    cgroups是一個非常強大的linux內核工具,他不僅可以限制被namespace隔離起來的資源,還可以為資源設置權重、計算使用量,這篇文章主要介紹了docker?cgroups資源限制,需要的朋友可以參考下
    2022-09-09
  • Docker 通過端口來連接一個容器的實現

    Docker 通過端口來連接一個容器的實現

    這篇文章主要介紹了Docker 通過端口來連接一個容器的實現,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論