生产过程中,总是会遇到服务器磁盘被docker占满的情况
比如这样
也就跑了几个容器,莫名其妙磁盘就没了::(泪)
于是上网找方案
[root@node01 docker]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 46 46 14.44GB 435MB (3%)
Containers 121 108 1.359GB 3.478kB (0%)
Local Volumes 32 2 5.273GB 5.273GB (100%)
这个命令可以查看目前我们可以清理的docker缓存,分别为镜像,容器,数据卷
可以执行下面的命令清理
[root@master ~]# docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Are you sure you want to continue? [y/N] y
-a 参数清理的更加彻底 可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了……所以使用之前一定要想清楚吶。
清理后发现空间并没有减少 仔细查看发现是32磁盘 但是只有2个再用 在执行这个命令看看
[root@node01 docker]# docker volume ls -qf dangling=true
0d322472e941707dc9cdf72ae21647ace2e866d061781c1b3102f026454ff1bb
0fd37de5d1b7e9a7b047ef7564dc2f7cff9a430e091afaf8b3bce80d96716079
5cf16842c76f2b5ac32a37bb4cff4b1b691a1323b59db01adcf0569966746d91
9cb673514123500c7f6f0c0c777d99813c6489832638c261bfaffb9cea01c30f
23e3eb4e2c4ce36b484278c882a4ff77b8b73a0afcb42f9d4fb4bbd9da04b305
51a3a18fe7339d97627c894d636a07503244f15f05a945f8ba0e326e53bac4fd
61bc3ad6461da6f126e6191509e7964a34c8b9514a2c488462e9b2a465ddd541
89c4921a2c858db86534e0924f5f64786dfcb193b95d98bb468eb2b4e401443c
146ee0f6e0a42cdfa112a69780637f6a28120fdd56d129e3f697c68a01e6791b
176b4fa0c65897c355aafff690bf7a97b419ecf9877b1d518b8574cf86b88971
517bd77537b86937ec43778a171b027ed3200f9ba4405740343dc748a366103b
540c32012f161afee2abab0ea62f9621612c99392d51bbb266c4e8953f8e3302
976d1335e32ea78551c0b8ebf96cd626d5cdae78379a4e3b685672ff30911628
····
可以看到有很多没有挂载的磁盘
可以使用这个命令清理
[root@node01 docker]# docker volume rm $(docker volume ls -qf dangling=true)
0d322472e941707dc9cdf72ae21647ace2e866d061781c1b3102f026454ff1bb
0fd37de5d1b7e9a7b047ef7564dc2f7cff9a430e091afaf8b3bce80d96716079
5cf16842c76f2b5ac32a37bb4cff4b1b691a1323b59db01adcf0569966746d91
9cb673514123500c7f6f0c0c777d99813c6489832638c261bfaffb9cea01c30f
23e3eb4e2c4ce36b484278c882a4ff77b8b73a0afcb42f9d4fb4bbd9da04b305
51a3a18fe7339d97627c894d636a07503244f15f05a945f8ba0e326e53bac4fd
61bc3ad6461da6f126e6191509e7964a34c8b9514a2c488462e9b2a465ddd541
清理完成再次查看
[root@node01 docker]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 46 46 14.44GB 435MB (3%)
Containers 121 108 1.359GB 3.478kB (0%)
Local Volumes 2 2 0B 0B
Build Cache 0 0 0B 0B
当然也可以手动清理无tag的镜像
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
手动清理关闭的容器
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
空间已经下来了 ::(酷)