以下是搜到的几种方案
http://blog.51yip.com/cloud/1859.html
# 停止docker
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
# 删除docker
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
# 删除images
docker rmi $(docker images | grep "none" | awk '{print $3}')
或者 http://blog.csdn.net/u014221090/article/details/53186313
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
docker images|grep none|awk '{print $3 }'|xargs docker rmi
或者 http://blog.csdn.net/goflyfreely/article/details/53149894
- 好的<none>:<none>镜像的产生
例如从镜像仓库里拿一个fedora 镜像。如图虽然docker images 只显示fedora:latest,但是
docker images -a 显示了两个镜像fedora:latest 和<none>:<none>.
原来docker中镜像是有垂直父子关系的,层级关系可以在/var/lib/docker/graph中看到。docker pull fedora执行的时候呢,就会每次下载一个镜像。
可以通过查看/var/lib/docker/graph的json查看父子关系。这些镜像都不会引起存储空间占用的问题。
root@xxxx:/var/lib/docker/graph# more ff0e2b608af6b1901d8ad9e9556e9e8ffe91b4c5386039e32bdf087df6157f65/json
{"container_config":{"Hostname":"","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":fal
se,"OpenStdin":false,"StdinOnce":false,"Env":null,"Cmd":["/bin/sh -c echo 'export PATH=$ORACLE_HOME/bin:$PATH' \u003e\u003e /etc/bas
h.bashrc"],"Image":"","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":null},"created":"2016-04-20T10:29:03.
276290831Z","layer_id":"sha256:a5d9cef8ef2a0ffd19fea965e22924c2717bdcec82f628344111ae5aeec3ec13","parent_id":"sha256:c74e9fd53a7e49d
4d4cd562a69aa8ccc094ee17aedb7cc26a161af2903af8f68"}
- 坏的<none>:<none>镜像的产生
而docker build 或是 pull 命令就会产生临时镜像。如果我们用dockerfile创建一个helloworld镜像后,因为版本更新需要重新创建,那么以前那个版本的镜像就会
成为临时镜像。这个是需要删除的。删除命令见下。
sudo docker rmi $(docker images -f "dangling=true" -q)