我在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图像显示四(4)个基本图像和一(1)个节点图像。


当前回答

列出图像:

ahanjura@ubuntu:~$ sudo docker images

存储库标记图像ID创建的大小88282f8eda00 19秒前308.5 MB13e5d3d682f4 19小时前663 MBbusybox2最新05fe66bb1144 20小时前1.129 MBubuntu 16.04 00fd29ccc6f1 5天前110.5 MBubuntu 14.04 67759a80360c 5天前221.4 MBpython 2.7 9e92c8430ba0 7天前680.7 MBbusybox最新版本6ad733544a63 6周前1.129 MBubuntu 16.10 7d3f705d307c 5个月前106.7 MB

删除图像:

ahanjura@ubuntu:~$ sudo docker rmi 88282f8eda00

删除:sha256:88822f8eda0036f85b5652c44d158308c6f86895ef1345dfa788318e6ba31194删除:sha256:4f211a991fb392cd794bc9ad8833149cd9400c5955958c4017b1e2dc415e25e9删除:sha256:8cc617ac7f0dcb74969ae7958fe80b4a4ea7b3223fc888dfe1aef42f43df6f8删除:sha256:b74a8932cff5e61c3fd2cc39de3c0989bdfd5c2e5f72b8f99f2807595f8ece43

ahanjura@ubuntu:~$ sudo docker rmi 13e5d3d682f4

守护程序的错误响应:冲突:无法删除13e5d3d682f4(必须强制)-已停止的容器5593e25eb638正在使用映像

强行删除:

ahanjura@ubuntu:~$ sudo docker rmi -f 13e5d3d682f4

删除:sha256:13e5d3d682f4d973780b35a33393c46eb314ef3db45d3ae83baf2dd9d702747e删除:sha256:3ad9381c7041c03768ccd855ec86caa6bc0244223f1b0465c4898bdb21dc378删除:sha256:5ccb917bce7bc8d3748eccf677d7b60dd101ed3e7fd2aedebd521735276606af删除:sha256:18356d19b91f0abcc04496729c9a4c49e695dbfe3f0bb1c595f30a7d4d264ebf

其他回答

列出图像:

ahanjura@ubuntu:~$ sudo docker images

存储库标记图像ID创建的大小88282f8eda00 19秒前308.5 MB13e5d3d682f4 19小时前663 MBbusybox2最新05fe66bb1144 20小时前1.129 MBubuntu 16.04 00fd29ccc6f1 5天前110.5 MBubuntu 14.04 67759a80360c 5天前221.4 MBpython 2.7 9e92c8430ba0 7天前680.7 MBbusybox最新版本6ad733544a63 6周前1.129 MBubuntu 16.10 7d3f705d307c 5个月前106.7 MB

删除图像:

ahanjura@ubuntu:~$ sudo docker rmi 88282f8eda00

删除:sha256:88822f8eda0036f85b5652c44d158308c6f86895ef1345dfa788318e6ba31194删除:sha256:4f211a991fb392cd794bc9ad8833149cd9400c5955958c4017b1e2dc415e25e9删除:sha256:8cc617ac7f0dcb74969ae7958fe80b4a4ea7b3223fc888dfe1aef42f43df6f8删除:sha256:b74a8932cff5e61c3fd2cc39de3c0989bdfd5c2e5f72b8f99f2807595f8ece43

ahanjura@ubuntu:~$ sudo docker rmi 13e5d3d682f4

守护程序的错误响应:冲突:无法删除13e5d3d682f4(必须强制)-已停止的容器5593e25eb638正在使用映像

强行删除:

ahanjura@ubuntu:~$ sudo docker rmi -f 13e5d3d682f4

删除:sha256:13e5d3d682f4d973780b35a33393c46eb314ef3db45d3ae83baf2dd9d702747e删除:sha256:3ad9381c7041c03768ccd855ec86caa6bc0244223f1b0465c4898bdb21dc378删除:sha256:5ccb917bce7bc8d3748eccf677d7b60dd101ed3e7fd2aedebd521735276606af删除:sha256:18356d19b91f0abcc04496729c9a4c49e695dbfe3f0bb1c595f30a7d4d264ebf

下面是一个shell脚本,用于删除标记(命名)的图像及其容器。另存为docker rmi并使用“docker rmi-my image name”运行

#!/bin/bash

IMAGE=$1

if [ "$IMAGE" == "" ] ; then
  echo "Missing image argument"
  exit 2
fi

docker ps -qa -f "ancestor=$IMAGE" | xargs docker rm
docker rmi $IMAGE

首先,我们必须停止并删除Docker容器,这些容器与我们将要删除的Docker映像相关联。

因此,首先

docker stop container id-停止正在运行的容器docker rm container id-删除/删除容器

然后

docker rmi image id-删除/删除图像

首先使用以下方法列出您的所有图像:docker图像

用于删除单个图像

使用docker rmi[image name(or)image id]//这将仅删除该特定图像

用于删除所有图像

使用docker rmi-f$(docker images-a-q)

docker rmi  91c95931e552

后台进程的错误响应:冲突,无法删除91c95931e552,因为容器76068d66b290正在使用它,请使用-f强制FATA[0000]错误:未能删除一个或多个图像

查找容器ID,

# docker ps -a

# docker rm  daf644660736