部署服务时,发现load的镜像出现丢失现象
问题: 服务器根目录使用率超过80%,上传的镜像包会丢失。
默认情况下docker的存放位置为:/var/lib/docker
方案1:使用软连接方式(不建议,可以了解一下)
可以通过下面命令查看具体位置:
sudo docker info | grep "Docker Root Dir"
1.首先停掉docker服务
systemc stop docker
2.对之前数据做个文件备份
tar -zcvf docker-backup-$(date +%Y-%m-%d).tar.gz /var/lib/docker
3.然后迁移整个/var/lib/docker目录到新的目录下
根据自己服务器空间大的目录下,创建目录,以上图为例
mkdir -p /data/tools/docker
mv /var/lib/docker /data/tools/docker
4.建立symlink软链接
ln -s /data/tools/docker/ /var/lib/docker
5.确认文件夹类型为symlink 类型
ls -al /var/lib/docker
6.重新启动docker发现目录存储路径已经改变
systemctl start docker
sudo docker info | grep "Docker Root Dir"
方案2:修改镜像和容器的默认存放路径(推荐使用)
指定镜像和容器存放路径的参数是--graph=/var/lib/docker,我们只需要修改配置文件指定启动参数即可。刚好有个300g盘的挂在/data目录上,所以在这个目录下新建一个文件路径/data/docker
1.对之前的docker做个文件备份
tar -zcvf docker-backup-$(date +%Y-%m-%d).tar.gz /var/lib/docker
查看镜像docker images
2.创建目录
mkdir -p /data/docker
3.打开 /var/lib/docker/daemon.json 输入以下内容(如果没有找到就创建一个),
修改配置1
vim /etc/docker/daemon.json
{
"graph":"/data/docker"
}
修改配置2.
系统配置文件位置/etc/systemd/system/docker.service
vim /etc/systemd/system/docker.service
文本内容:ExecStart=/usr/bin/dockerd下面添加--graph /data/docker
如下:
ExecStart=/usr/bin/dockerd --graph /data/docker
4.重启docker
systemctl daemon-reload
systemctl restart docker
5.docker info查看其中Docker Root Dir:已经改变
docker info | grep "Docker Root Dir"
6.但是这个时候用docker images 查看原来存在的镜像不见了.
并查看/data/docker目录下,已经生产了很多文件夹.
7.删除/data/docker目路下的所有文件
rm -rf /data/docker/*
拷贝/var/lib/docker目录下的所有内容
mv /var/lib/docker /data/
9.重启服务
systemctl restart docker
10.查看镜像
docker images