先BB两句
某一天
发现公司的confluence服务器的docker容器路径默认存储在/var/lib/docker/下
并没有利用到挂载的data云盘,导致根目录磁盘一直比较爆满
之前建confluence的程序猿只设置了volume
容器内的日志会挂载到data盘,但运行着的容器日志和volume没关系的
迁移容器(删库跑路)的准备工作
mkdir -p /data/docker
systemctl stop docker
先创建需要切换的root dir目录 然后暂停docker服务
/bin/cp -R /var/lib/docker/* /data/docker/
/etc/docker/daemon.json
根据docker的版本指定”data-root”,低版本的写”graph”,注意每一行之间有逗号
systemctl daemon-reload
systemctl restart docker
然后查看 Root Dir是否切换
docker info |grep -i root
特别注意事项!
迁移工作时如果少了步骤3),会导致重启docker以后镜像和容器清空,
是因为修改了docker的容器镜像路径,导致docker服务找不到而已,并没有真正的删除
只需要重新执行步骤3),然后重启docker就可以了
其他坑爹事项
在自己虚拟机测试的时候,路径切换成功,
但是spug的容器起不来了,切回路径又可以起来,
然后测试了其他ubuntu,redis的官方容器镜像,
用各种方法启容器,发现切路径后容器是正常的,
估计是spug这个容器有点兼容性的问题,必须要用默认的路径
systemctl daemon-reload
systemctl restart docker
到此刻还没有任何问题,
结果重启虚拟机,容器就完全不行了,
不管是以前的容器,和以前一模一样的启动方式的新容器, 一直在报Exited (139) 3
还有怎么重启docker服务都没用,
docker log 容器ID
还看不到任何日志,判断是docker本身的问题
systemctl status docker -l
看日志
failed to unmount secrets: invalid argument ,
估计是镜像挂载问题,又重新拉镜像或者下不同镜像还是不行
结果搞到最后。。
竟然是因为重启电脑后开启了selinux。。。。。?!淦
setenforce 0
临时关闭,搞定