root@server:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 5e2dfc857e73 5 days ago 261.6 MB
<none> <none> d053e988f23d 5 days ago 261.6 MB
<none> <none> 1d5d4a2d89eb 5 days ago 261.6 MB
<none> <none> ea0d189fdb19 5 days ago 100.5 MB
<none> <none> 26c6175962b3 5 days ago 100.5 MB
<none> <none> 73d5cec4a0b3 5 days ago 100.5 MB
<none> <none> e19590e1bac1 5 days ago 100.5 MB
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
Run Code Online (Sandbox Code Playgroud)
以下内容:
docker rmi $(docker images -f "dangling=true" -q)
Run Code Online (Sandbox Code Playgroud)
收到以下错误:
docker: "rmi" requires a minimum of 1 argument.
See 'docker rmi --help'.
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
Run Code Online (Sandbox Code Playgroud)
Von*_*onC 125
您可以尝试仅列出未标记的图像(没有标签的图像,或没有标记的标签):
docker images -q -a | xargs docker inspect --format='{{.Id}}{{range $rt := .RepoTags}} {{$rt}} {{end}}'|grep -v ':'
Run Code Online (Sandbox Code Playgroud)
但是,其他人可能需要其中一些未标记的图像.
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Run Code Online (Sandbox Code Playgroud)
正如我在2016年9月的" 如何删除旧的和未使用的Docker镜像 "中提到的docker 1.13+ ,您也可以执行以下image prune命令:
docker image prune
Run Code Online (Sandbox Code Playgroud)
话虽如此,Janaka Bandara 在评论中提到:
这并没有
<none>为我删除标签图像(例如foo/bar:<none>); 我不得不使用docker images --digests和docker rmi foo/bar@<digest>
Janaka参考了Paul V. Novarese的 " 如何删除带标记的签名图像 " :
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
pvnovarese/mprime latest 459769dbc7a1 5 days ago 4.461 MB
pvnovarese/mprime <none> 459769dbc7a1 5 days ago 4.461 MB
Run Code Online (Sandbox Code Playgroud)
诊断步骤
如果使用该
--digests=true选项,则可以看到这两个条目的区别(未标记的条目具有Docker Content Trust签名摘要):
# docker images --digests=true
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
pvnovarese/mprime latest <none> 459769dbc7a1 5 days ago 4.461 MB
pvnovarese/mprime <none> sha256:0b315a681a6b9f14f93ab34f3c744fd547bda30a03b55263d93861671fa33b00 459769dbc7a1 5 days ago
Run Code Online (Sandbox Code Playgroud)
请注意,保罗还提到了18892年的moby问题:
拉出已签名的图像后,
<none>"docker images"输出中有一个"额外"条目(带标记).
这使得rmi图像变得困难(您必须强制它,否则首先删除正确标记的条目,或通过摘要删除.
kes*_*ami 25
这对我来说有效
docker image rm -f $(docker images -f dangling=true -q)
Run Code Online (Sandbox Code Playgroud)
小智 21
docker images | grep none | awk '{ print $3; }' | xargs docker rmi
Run Code Online (Sandbox Code Playgroud)
你可以这么简单地试试
Rag*_*nar 17
只需运行此命令:
docker image prune --filter="dangling=true"
Run Code Online (Sandbox Code Playgroud)
her*_*erm 12
docker image prune删除所有悬空图像(标记为none的图像).docker image prune -a还会删除没有使用它们的容器的任何图像.
此stackoverflow线程中解释了悬空和未使用图像之间的区别.
Ozz*_*ech 11
根据docker 文档,您只能列出未标记(悬空)的图像
$ docker images -f "dangling=true"
Run Code Online (Sandbox Code Playgroud)
并将它们重定向到这样的docker rmi命令:
$ docker rmi $(docker images -f "dangling=true" -q) --force
Run Code Online (Sandbox Code Playgroud)
注意-qparam 仅显示容器的数字 ID。
yev*_*niy 10
要删除所有图像,none我们必须确保删除了所有可以运行的已停止容器:
docker rm $(docker ps -a -q)
Run Code Online (Sandbox Code Playgroud)
然后我们可以删除所有图像:
docker image prune
Run Code Online (Sandbox Code Playgroud)
none使用以下命令删除具有存储库名称的图像:
docker rmi $(docker images | grep "^<none" | awk '{print $3}')
Run Code Online (Sandbox Code Playgroud)
删除具有none标签或存储库名称的图像:
docker rmi $(docker images | grep "none" | awk '{print $3}')
Run Code Online (Sandbox Code Playgroud)
小智 9
首先使用 docker container prune 删除所有停止的容器,然后使用 docker image prune 删除所有悬空的镜像。
docker container prune
docker image prune
Run Code Online (Sandbox Code Playgroud)
以下将删除所有<none>图像
docker rmi $(docker images | grep none | awk '{print $3}')
Run Code Online (Sandbox Code Playgroud)
您可以通过更改为强制删除,docker rmi但docker rmi -f我不建议这样做。
某些<none>图像可能与其他图像相关,因此为了安全起见,请勿使用-f标签。
第一个解决方案:
首先删除不使用的容器。
docker ps -a | grep -v Up | awk '{ print $1; }' | xargs docker rm
Run Code Online (Sandbox Code Playgroud)
删除所有没有标签的容器。
docker images | grep none | awk '{ print $3; }' | xargs docker rmi
Run Code Online (Sandbox Code Playgroud)
第二种解决方案删除全部:
$ docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N]
Run Code Online (Sandbox Code Playgroud)
你可以去docker rmi $(docker images -f "dangling=true" -q)。有关更多选项,请参阅图像文档。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 94870cda569b 4 seconds ago 673MB
python 2.7 320a06f42b5f 10 days ago 673MB
mysql latest e799c7f9ae9c 2 months ago 407MB
gcavalcante8808/semaphore latest 86e863e11461 2 months ago 537MB
redis latest e32ef7250bc1 2 months ago 184MB
rabbitmq 3.6.9-management 7e69e14cc496 2 months ago 179MB
rabbitmq 3.6.9 eb2e4968538a 2 months ago 179MB
jordan/rundeck latest 6d40b57b1572 2 months ago 660MB
rabbitmq 3.5.6-management dbfe8d18809a 19 months ago 304MB
$ docker rmi $(docker images --format '{{.ID}}' --filter=dangling=true)
Deleted: sha256:94870cda569b8cf5f42be25af107d464c993b4502a1472c1679bf2d213b6c0a6
Run Code Online (Sandbox Code Playgroud)
您可以检查过滤器 'dangling' 是否不再起作用
$ docker images -f “dangling=true” -q
Error response from daemon: Invalid filter 'dangling'
Run Code Online (Sandbox Code Playgroud)
使用docker system prune删除悬空图像
$ docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Are you sure you want to continue? [y/N]
Run Code Online (Sandbox Code Playgroud)
您可以--force用于不提示确认
$ docker system prune --force
Run Code Online (Sandbox Code Playgroud)
docker rmi --force $(docker images -q --filter "dangling=true")
Run Code Online (Sandbox Code Playgroud)
小智 7
你可以在 docker 中使用这个命令:
docker image prune
Run Code Online (Sandbox Code Playgroud)
对于所有容器:
docker container prune
Run Code Online (Sandbox Code Playgroud)
小智 6
删除悬空 ( <none>) 图像的最简单的解决方案应该是:
docker image prune
Run Code Online (Sandbox Code Playgroud)
您可以选择添加--force或-f禁用提示。
docker system prune就可以了,它会删除
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Run Code Online (Sandbox Code Playgroud)
但使用它,要小心!
| 归档时间: |
|
| 查看次数: |
54586 次 |
| 最近记录: |