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


当前回答

如果您希望自动/定期清理退出的容器,并删除正在运行的容器未使用的图像和卷,可以下载图像融合器/docker清理。

我在生产中使用这一点,因为我们每天在多个服务器上部署几次,我不想去每一个服务器进行清理(这会很痛苦)。

只需运行:

docker run -d -v /var/run/docker.sock:/var/run/docker.sock:rw  -v /var/lib/docker:/var/lib/docker:rw --restart=unless-stopped meltwater/docker-cleanup:latest

它将每30分钟运行一次(或使用DELAY_TIME=1800选项设置多长时间),并清理退出的容器和图像。

更多详情:https://github.com/meltwater/docker-cleanup/blob/master/README.md

其他回答

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

列出图像:

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

为什么没有人提到码头工人作曲!我刚用了一个星期,没有它我无法生存。你只需要写一个只需要几分钟学习的yml,然后你就可以开始了。它可以引导映像、容器(在所谓的服务中需要),并让您像使用docker本地命令一样查看日志。试试看:

docker-compose up -d
docker-compose down --rmi 'local'

在使用docker compose之前,我编写了自己的shell脚本,然后我必须在需要时定制脚本,尤其是在应用程序架构发生变化时。现在我不必再这样了,多亏了docker compose。

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

sudo docker rmi <NAME>:<TAG>

ex:

sudo docker rmi php:7.0.4-fpm

docker rm容器名称

docker rmi映像名称

码头工人帮助rm删除一个或多个容器rmi删除一个或多个图像