docker 满了。 Docker修改数据存储目录{#articleContentId}
系统盘爆满:
每个运行的容器都会产生日志文件,这些日志文件默认存储在宿主机的/var/lib/docker/containers目录下。随着容器数量的增加以及日志的不断累积,这个目录的空间可能会被迅速占满。
解决方案:
方案1: 修改docker 配置文件
方案2: 做软连接
方案1:
在安装docker后,docker默认的存储路径是
/var/lib/docker
1、更新docker自定义数据目录,建议先停止docker应用,这样子更好的保证数据完整性,在复制过程中就不容易丢失数据。
## 停止 docker应用
systemctl stop docker
## 将docker 数据库目录以及其数据目录的所有数据迁移到新目录
cp -rp /var/lib/docker /mnt/data/
# 注意:
# 复制目录,要把目录的权限都给复制过去,以免出现不必要的错误 白眉大叔
2、修改docker默认数据存储目录配置,在/etc/docker/daemon.json文件添加 以下内容,若是没有/etc/docker/daemon.json文件,则新建该文件
## 新建docker配置文件
touch /etc/docker/daemon.json
## 编辑 配置文件添加 "data-root": "/mnt/data/docker"
vim /etc/docker/daemon.json
## 内容如下:
{
"data-root": "自定义目录"
}
不要忘记 ,
参考:
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"data-root": "/mnt/data/docker"
}
3、重新加载配置文件
systemctl daemon-reload
4、重启docker应用
systemctl restart docker
5、确认docker数据储存目录已更改
docker info
6、删除docker旧存储数据
由于已经将docker的存储数据迁移到新目录,则可以删除旧目录数据,但是我建议将目录数据保留一段时间后再删除,或者将该目录数据备份到其他地方
cd /mnt/data/users/zzy/bak
mv /var/lib/docker .
记得把服务启动起来:
docker ps -a
docker start 2c8d44ad0077 5b9db2a3b01a
方案2: 做软连接
第一次做的时候失败了,建议用第一个方案
1停止Docker服务:
systemctl stop docker
2迁移Docker目录到新的位置(例如/new/docker)
sudo mv /var/lib/docker /new/docker
3创建一个符号链接将新的Docker目录链接到原来的位置:
sudo ln -s /new/docker /var/lib/docker
4启动Docker服务:
systemctl start docker