1. 程式人生 > >Docker中無法停止或刪除容器服務問題處理

Docker中無法停止或刪除容器服務問題處理

前言

今天有開發同學給我反饋說有一個容器服務無法 stop、rm(docker rm -f)和 kill 等操作,也就是說這個容器服務無法終止~

操作步驟

(1)執行刪除命令無法刪除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"

Docker中無法停止或刪除容器服務問題處理

(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"  //已經沒有啦

(5)現在執行刪除docker的目錄:

# cd /var/lib/docker/containers 

# rm -rf caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8

(6)刪除容器服務

現在我們使用 rm 或 kill 來刪除 容器服務:

# docker rm -f caf8ef20f3c1c
或
# docker kill --signal=SIGINT  caf8ef20f3c1

如果上面命令執行之後,出現hang住(卡住)現象,請重啟docker服務:

# systemctl restart docker

做完以上步驟,所遇問題基本就可以解決了~