解決docker假死
在調整docker存儲位置時,突然遇到docker命令無反應的情況,經過一段時間排查及搜集資料最終解決了假死的問題,並且成功改變了docker的默認存儲位置。
docker stop [容器名稱] 命令無響應 docker ps -a 查看容器運行狀態無響應 docker exec -it [容器名稱] /bin/bash 進入docker無響應 ...
后備份了docker目錄(/var/lib/docker),經過一番嘗試之后,發現存在一些僵屍進程
ps -ef | grep 'defunct' 查看具體信息
最終確認了篩選出來的PPID就是對應的容器ID的進程,最終kill -9 ID 后top查看僵屍進程消失,一切恢復正常。
docker目錄遷移
1.查看當前系統下docker所有正在運行的容器,並停止
docker ps -a
docker stop [容器名稱/容器ID]
2.停止docker服務
sudo service docker stop
3.將/var/lib/docker復制到數據盤下(注意復制后文件大小是否有變化)
cp -r /var/lib/docker /數據盤/路徑/docker
4.刪除/var/lib/docker內的數據
rm -rf /var/lib/docker
如果提示被占用,是由於掛載的原因,執行umount操作
cat /proc/mounts 找到docker相關掛載,執行umount操作 umount /var/lib/docker 再次執行刪除操作 rm -rf /var/lib/docker
5.將復制后的docker軟鏈接到安裝目錄下
ln - s /數據盤/路徑/docker /var/lib/docker # 注意路徑
6.啟動docker服務
sudo service docker start
7.啟動已停止的容器
docker start [容器名稱/容器ID]