如何使用 shell 脚本获取 docker 服务名称前缀的首字母(这将是 docker 群中的堆栈名称)
how to take initial of prefix of docker service name using shell script (which would be stack name in docker swarm)
我想获取 docker 服务名称的初始前缀("UAT_postgres1.gbc38equ81vj6skoknsu83ypz" 从这里我想要 UAT,因为它在这里也是堆栈名称)并将其存储在一个变量中,同时 运行 shell 脚本以便稍后在脚本执行期间使用它。
任何人都可以帮助我。
谢谢
既然你知道它是堆栈的名称,为什么不直接使用它而不是管道到 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 命令都可以用这种方式格式化以获得您想要的。这是一个简单的示例,但在其他情况下非常有用。
我想获取 docker 服务名称的初始前缀("UAT_postgres1.gbc38equ81vj6skoknsu83ypz" 从这里我想要 UAT,因为它在这里也是堆栈名称)并将其存储在一个变量中,同时 运行 shell 脚本以便稍后在脚本执行期间使用它。 任何人都可以帮助我。 谢谢
既然你知道它是堆栈的名称,为什么不直接使用它而不是管道到 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 命令都可以用这种方式格式化以获得您想要的。这是一个简单的示例,但在其他情况下非常有用。