Zac*_*ack 2 awk grep delete-file image-file docker
我正在使用码头工具,我发现当我运行时
docker images -a
Run Code Online (Sandbox Code Playgroud)
我有大量没有标签的图像,或者至少它们有标签
<none>
Run Code Online (Sandbox Code Playgroud)
这些在我的磁盘上浪费了太多的空间,现在一个df -h告诉我我的根已经满了.
我潜伏在互联网上,发现了
docker rmi -f $(docker images -a | grep "^<none>" | awk '{print $3}')
Run Code Online (Sandbox Code Playgroud)
至少会遍历所有没有的,但后来我得到了大量的错误信息.
Error: response from daemon: Conflict, <id> wasn't deleted
Error: response from daemon: Conflict, <id> wasn't deleted
Error: response from daemon: Conflict, <id> wasn't deleted
Error: response from daemon: Conflict, <id> wasn't deleted
etc...
Error: failed to remove images: [<list of all the image ids that I want gone>]
Run Code Online (Sandbox Code Playgroud)
这有点令人讨厌.有谁知道这些没有标记的图像是什么,为什么我的命令没有摆脱它们?
无论何时构建新版本的标记图像(例如,运行docker build -t foo .,更改Dockerfile中的内容,然后再次运行该命令),都不会删除旧图像; 它只是把它的标签带走了.该<none>你请参阅s是没有留下任何标记的图像,用户可以通过指定图像ID(引用它们的命令fe336c4cdb2f或其他).您可以通过将这些ID传递给它们来删除它们docker rmi,或者您可以这样做:
docker images -f dangling=true -q | xargs -r docker rmi
Run Code Online (Sandbox Code Playgroud)
如果您仍然收到有关无法删除图像的错误消息,则可能仍有容器悬挂在使用这些旧图像的位置; 通过运行检查docker ps -a.
| 归档时间: |
|
| 查看次数: |
779 次 |
| 最近记录: |