协慌网

登录 贡献 社区

如何删除 Docker 映像?

我正在 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))

注意:更换killstop对正常关机

删除除 “我的图像” 以外的所有图像

使用 grep 删除除my-imageubuntu

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 容器

docker rm $(docker ps -a -q)

删除所有 Docker 映像

docker rmi $(docker images -q)