ubuntu14.04下解决docker假死及更改docker存储位置

解决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]
posted @ 2020-06-23 10:41  凌笑丶  阅读(1044)  评论(0编辑  收藏  举报