我想从中获取docker服务名称的初始前缀(“ UAT_postgres1.gbc38equ81vj6skoknsu83ypz”,因为我在这里也是UAT,所以我想将它存储在变量中),然后在运行Shell脚本时在以后的某个时间点使用它,脚本执行。 任何人都可以请帮助我。 谢谢
答案 0 :(得分:1)
既然您知道它是堆栈的名称,为什么不使用它而不是用管道连接到awk:
NAME=$(docker stack ls --format {{.Name}})
如果您只有容器ID,没问题:
NAME=$(docker inspect --format='{{index .Config.Labels "com.docker.stack.namespace" }}' <container ID>)
如果要改为使用服务ID,则几乎相同:
NAME=$(docker inspect --format='{{index .Spec.Labels "com.docker.stack.namespace" }}' <service ID>)
几乎所有docker命令都可以通过这种方式进行格式化,以获取所需的内容。这是简单的示例,但是在其他情况下非常有用。