我有以下图片:

alex@alexvps:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>              <none>              70c0e19168cf        5 days ago          1.069 GB
<none>              <none>              c2ce80b62174        8 days ago          399.2 MB
<none>              <none>              60afe4036d97        8 days ago          325.1 MB

当我试图删除其中一个时,我会得到:

alex@alexvps:~$ sudo docker rmi 60afe4036d97
Error: Conflict, 60afe4036d97 wasn't deleted
2014/01/28 00:54:00 Error: failed to remove one or more images

我该如何移除它们?为什么会有这样的冲突?


当前回答

从Docker开始。1.13.0(2017年1月)有系统剪枝命令:

$ docker system prune --help

Usage:  docker system prune [OPTIONS]

Remove unused data

Options:
-a, --all     Remove all unused images not just dangling ones
-f, --force   Do not prompt for confirmation
    --help    Print usage

其他回答

要删除一些Docker镜像,必须执行以下命令:

$ docker rmi <docker_image_id>

因此,要删除所有Docker映像,可以执行以下命令:

$ docker rmi $(docker images -q)

现在,如果你想删除所有的Docker映像(包括正在使用的映像),你可以添加标记-f,例如:

$ docker rmi -f $(docker images -q)

如果你想自动/定期清理退出的容器,并删除运行中的容器不使用的镜像和卷,你可以下载Docker镜像meltwater/ Docker -cleanup。

这样你就不需要亲自去清理了。

运行:

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

从Docker开始。1.13.0(2017年1月)有系统剪枝命令:

$ docker system prune --help

Usage:  docker system prune [OPTIONS]

Remove unused data

Options:
-a, --all     Remove all unused images not just dangling ones
-f, --force   Do not prompt for confirmation
    --help    Print usage

我在这条命令中找到了答案:

docker images --no-trunc | grep none | awk '{print $3}' | xargs docker rmi

当我删除一些正在使用的图像时,我遇到了你的问题,我没有意识到(使用docker ps -a)。

在Bash中:

for i in `sudo docker images|grep \<none\>|awk '{print $3}'`;do sudo docker rmi $i;done

这将删除所有名称为“<none>”的图像。我发现那些图片是多余的。