我在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)个节点图像。


当前回答

下面是一个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 rmi  91c95931e552

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

查找容器ID,

# docker ps -a

# docker rm  daf644660736 

我的问题是我有两张同名的照片解决方案是在名称或id之后添加标记

sudo docker rmi <NAME>:<TAG>

ex:

sudo docker rmi php:7.0.4-fpm

对我来说,以下工作很好:

> docker images
REPOSITORY   TAG           IMAGE ID          CREATED             SIZE
debian       jessie        86baf4e8cde9      3 weeks ago         123MB
ubuntu       yakkety       7d3f705d307c      3 weeks ago         107MB
alpine       3.5           074d602a59d7      7 weeks ago         3.99MB

然后继续,通过运行以下命令删除图像:

> docker rmi debian:jessie
> docker rmi ubuntu:yakkety
> docker rmi alipine:3.5

对于1.13及更高版本:

docker image rm [OPTIONS] IMAGE [IMAGE...]

比较:

docker图像rm和docker rmi的文档,

[选项]似乎没有什么不同。

--force , -f        Force removal of the image
--no-prune          Do not delete untagged parents

发件人:Docker 1.13简介

CLI已重组在Docker 1.13中,我们重新组合了每个命令,使其位于与之交互的逻辑对象之下。例如,list和start of containers现在是docker container的子命令,history是docker image的子命令。这些更改让我们清理了Docker CLI语法,改进了帮助文本,使Docker更易于使用。旧的命令语法仍然受到支持,但我们鼓励大家采用新的语法。

要使用图像ID从Docker中删除图像,请执行以下操作:

获取所有图像的列表docker图像标识要删除的图像的图像ID,例如:存储库标记映像ID创建的虚拟大小kweku360/java最新版本08d3a9b8e166 2周前5.733 GB`最后使用图像ID删除图像(只需要前三位数字)码头工人rmi 08d