一、前言
Docker长时间使用后可能会使默认的存储目录/var/lib/docker不断增大,导致系统磁盘空间不足,因此需要定期清理过期数据或做数据转移。
二、 查看Docker占用磁盘情况
2.1 按目录查看
[root@localhost ~]# du -h /var/lib/docker --max-depth=1
668K /var/lib/docker/containers
0 /var/lib/docker/plugins
1.1G /var/lib/docker/overlay2
2.2M /var/lib/docker/image
5.0M /var/lib/docker/volumes
0 /var/lib/docker/trust
76K /var/lib/docker/network
0 /var/lib/docker/swarm
16K /var/lib/docker/builder
56K /var/lib/docker/buildkit
0 /var/lib/docker/tmp
0 /var/lib/docker/runtimes
1.1G /var/lib/docker
2.2 按docker对象查看
[root@localhost ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 3 3 662.7MB 69.21MB (10%)
Containers 3 1 1.96kB 150B (7%)
Local Volumes 7 2 552.1MB 547.7MB (99%)
Build Cache 0 0 0B 0B
三、释放磁盘空间
3.1 单个删除
# 删除容器
docker rm <容器ID>
# 删除镜像
docker rmi <镜像ID>
# 删除卷
docker volume rm <卷ID>
# 删除网络
docker network rm <网络ID>
3.2 批量删除
[root@251 ~]# docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N]
注意:加了-a后Remove all unused images not just dangling ones
四、修改Docker默认的存储位置
4.1 方式一:修改启动参数
4.4.1 修改配置文件
vi /etc/docker/daemon.json
4.4.2 增加graph参数
如果daemon.json文件不存在,就创建该文件
{
"graph":"/home/docker"
}
4.4.3 重启Docker
systemctl restart docker
注意:
1、新的存储目录/home/docker必须先创建好,如果不存在/home/docker目录,Docker服务会启动失败
2、如果daemon.json文件中有多行配置参数,每行用逗号","分割
4.4.4 查看配置
docker info
Docker Root Dir 会显示新的存储目录
4.2 方式二:修改linux的连接
# 备份原来的目录
mv /var/lib/docker /var/lib/docker-bak
# 创建新目录
mkdir -p /home/docker
# 创建连接
ln -s /home/docker /var/lib/docker