本文已参与「新人创作礼」活动,一起开启掘金创作之路。
由于数据库是使用docker部署的,今天突然发现数据库挂掉了,然后排查的时候发现数据库的镜像状态一直是restart状态,经过排查发现/目录下的空间满了导致的,docker安装的时候没有修改路径,默认的存储路径在/var/lib/docker下,所以磁盘满应该是镜像太多导致,使用du -sh /var/lib/docker命令查看,果然发现是镜像文件占用了100多G,因此我们需要把镜像的存储路径迁移到挂载的容量大的磁盘上面
1.首先停止docker服务
systemctl stop docker
或者
service docker stop
2.寻找挂载磁盘大的目录下创建docker的存储目录,我的是在/home目录下,这个需要根据实际情况进行选择
mkdir /home/tools/docker_data
3.将之前的docker文件迁移到新的目录下
rsync -avz /var/lib/docker /home/tools/docker_data
4.编辑配置文件,如果没有就新建
vim /etc/docker/daemon.json
加入下面内容:
{
"graph":"/home/tools/docker_data/docker"
}
注意:需要根据自己的docker版本来选择加入的内容,新版的为data-root参数,我的docker版本比较旧使用的是graph参数
{
"data-root": "/home/docker_data/docker"
}
版本不一致会导致docker服务在启动的时候报错
Redirecting to /bin/systemctl restart docker.service
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
最后发现是因为docker在后面版本把graph弃用,改为data-root了
5.启动docker
systemctl start docker
或者
service docker start
6.然后删除原来的目录
rm -rf /var/lib/docker
7.然后查看发现原先在/var/lib/docker目录下的都已经切换到新的目录,且/目录也已经释放