我正在尝试清理与容器一起使用的(Windows)构建服务器。
我的目标是定期删除不是基本映像的所有内容,我通过过滤私有注册表名称来做到这一点。当我尝试为此使用PowerShell时,我遇到了这个奇怪的错误:
library(purrr)
map2_dfr(rapheys_df_list, XGB_models_Prep, bind_rows)
这是我自己运行的rapheys_df_list <- list(data.frame(col1 = 1:3, col2 = 4:6),
data.frame(col1 = 7:9, col2 = 10:12))
XGB_models_Prep <- list(data.frame(col1 = 2:5, col2 = 3:6),
data.frame(col1 = 4:6, col2 = 0:2))
过滤器,它返回的图像没有问题:
PS C:\> docker images | Select-String "azurecr" | % { docker rmi $_ }
Error response from daemon: invalid reference format: repository name must be lowercase
Error response from daemon: invalid reference format: repository name must be lowercase
Error response from daemon: invalid reference format: repository name must be lowercase
Error response from daemon: invalid reference format: repository name must be lowercase
Error response from daemon: invalid reference format: repository name must be lowercase
尽管错误指出了什么,但注册表或映像名称中没有大写字符。
也不起作用:
Select-String
答案 0 :(得分:0)
使用-like
运算符过滤docker images
的输出。它不仅比Select-String
更轻巧,而且后者还会生成MatchInfo
对象,而不是仅传递匹配的字符串,这可能会导致不良行为。另外,您不能只将整行传递给docker rmi
。该命令需要一个图像ID,因此您需要从字符串中提取该ID。
(docker images) -like '*azurecr*' | ForEach-Object {
$id = ($_ -split '\s+')[2]
docker rmi $id
}