【发布时间】:2018-12-28 21:05:45
【问题描述】:
我目前正在使用 docker 配置文件,并且正在寻找一种方法来自动删除“旧”配置文件。我使用了一个脚本,它将用 +1 更新我的所有配置文件版本;
app1-config-file-1.2.1
app1-config-file-1.2.2
app1-config-file-1.2.3
等等等等
现在我想在创建 app1-config-file-1.2.3 时删除 app1-config-file-1.2.2。
这个命令让我有点接近;
docker config rm $(docker config ls | grep -e 'app1'.*'-1.2.2')
“app1”是前缀,“-1.2.2”是我要删除的版本。
问题是上面的命令确实删除了正确的配置,但它也会尝试删除下面的'configs'
Error response from daemon: access denied
Error: No such config: hours
Error: No such config: ago
Error response from daemon: access denied
Error: No such config: hours
Error: No such config: ago
我的查询返回的是什么: $(docker config ls | grep -e 'app1'.*'-1.2.2')
我尝试添加 --quiet 或 -q 以仅获取配置 ID。但由于某种原因,我无法将它与配置文件一起使用,就像它与容器一起使用一样。
docker config ls -q | grep -e 'app1'.*'-1.2.2'
没有任何结果。
docker config ls | grep -e 'app1'.*'-1.2.2'
生成一个包含 ID、配置文件名称、年龄等的列表。基本上所有我想删除的配置文件,但我只需要 ID
所以我的问题是, 使用通配符时获取特定 docker 配置文件 ID 的正确方法是什么?
谢谢
【问题讨论】:
标签: docker docker-swarm