docker images
返回:REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> fcc125757e66 About an hour ago 270 MB
尝试
docker images | awk '{print }'
返回:SIZE
ago
hour
ago
ago
ago
预期结果
270
,因此可以在if语句中使用:if [ VAR > 250 ] then
echo "Image too large"
exit 1
fi
#1 楼
docker images
的输出确实是供人类使用的,并且不是很友好的解析。相反,大多数Docker命令都使用Go模板支持--format
标志。正如您在images
文档中看到的那样,您只真正关心.Size
的值,因此,您确实需要这样做: br /> docker images --format "{{.Size}}"
如果有多个图像,它们将分别放在单独的行上。我假设您只用一行,因为它极大地简化了下一步。
要摆脱
MB
,我们可以简单地使用sed
:90.6 MB
但是,您可能不希望在bash脚本中使用它。大多数shell不支持浮点比较,因此输入90.6只会失败。相反,让我们先使用
bc
截断数字: > 然后可以将其通过管道传递到Shell脚本中。我使用以下脚本进行了测试:
docker images --format "{{.Size}}" | sed "s/MB//g"
# => 90.6
然后运行:
docker images --format "{{.Size}}" | sed "s/MB/\/1/g" | bc
# => 90
评论
看来您已经制定了包装器脚本,而您只是在问如何获取图像的大小。正确吗?未验证:awf -F´\ t'´{split(“”,$ 5,arr);打印arr [1]}'