Docker工具箱清理磁盘空间

使用带有Virtualbox的Docker Toolbox for Windows,我已经运行了以下命令来清理docker:

集装箱

docker rm -v $(docker ps -a -q -f status=exited)

图片

docker rmi $(docker images -f "dangling=true" -q)

docker volume rm $(docker volume ls -qf dangling=true)

但是,看起来我的磁盘还在被我的内置映像所占用? 我也运行以下脚本进行清理:

 #!/bin/bash # remove exited containers: docker ps --filter status=dead --filter status=exited -aq | xargs -r docker rm -v # remove unused images: docker images --no-trunc | grep '<none>' | awk '{ print $3 }' | xargs -r docker rmi # remove unused volumes: find '/var/lib/docker/volumes/' -mindepth 1 -maxdepth 1 -type d | grep -vFf <( docker ps -aq | xargs docker inspect | jq -r '.[] | .Mounts | .[] | .Name | select(.)' ) | xargs -r rm -fr 

我收到以下错误:

 An error occurred trying to connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22status%22%3A%7B%22dead%22%3Atrue%2C%22exited%22%3Atrue%7D%7D: open //./pipe/docker_engine: The system cannot find the file specified. 

我相信这是由于我在非Linux系统上使用了Docker Toolbox。 因此,我未使用的卷的path是closures的?

Docker Toolbox在什么目录下存储它创build的图像?

您也可以尝试一些添加到版本1.13.0的命令:

 $ docker system prune $ docker container prune $ docker image prune $ docker volume prune $ docker network prune 

在Linux上,我的dockerclean脚本是这样的:

 #!/bin/bash # Remove dead containers docker ps -f status=dead --format '{{ .ID }}' | xargs -r docker rm -v # Remove dangling volumes docker volume ls -qf dangling=true | xargs -r docker volume rm # Remove untagged images docker images --digests --format '{{.Repository}}:{{.Tag}}@{{.Digest}}' | sed -rne 's/([^>]):<none>@/\1@/p' | xargs -r docker rmi # Remove dangling images docker images -qf dangling=true | xargs -r docker rmi # Remove temporary files rm -f /var/lib/docker/tmp/* 
Interesting Posts