我在 OS X 10.8.4(Mountain Lion)下在 Vagrant 下运行 Docker,每当我尝试删除已保存的图像时,我都会收到错误消息:
$ docker rmi some-image-id
2013/07/15 hh:mm:ss unexpected JSON input
根据rmi
帮助,正确的语法是docker rmi IMAGE [IMAGE...]
,我不知道该怎么做。
如何删除图像?
$ docker version
Client version: 0.4.8
Server version: 0.4.8
Go version: go1.1
$docker info
Containers: 1
Images: 3
有趣的是,当我运行docker ps
,根本没有容器出现。运行docker images
显示四(4)个base
图像和一(1)个node
图像。
尝试docker rmi node
。这应该工作。
查看所有创建的容器就像docker ps -a
一样简单。
要删除所有现有容器(不是图像!),运行docker rm $(docker ps -aq)
以下是删除 docker 镜像 / 容器的一些方法:
docker rmi image_name:version/image-id
docker rmi $(docker images -qf "dangling=true")
docker rm $(docker kill $(docker ps -aq))
注意:使用stop
替换kill
可以正常关闭
使用 grep 删除除my-image
和ubuntu
之外的所有内容
docker rmi $(docker images | grep -v 'ubuntu\|my-image' | awk {'print $3'})
或者(没有 awk)
docker rmi $(docker images --quiet | grep -v $(docker images --quiet ubuntu:my-image))
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)