【问题标题】:How to access task and node information within docker container service如何在 docker 容器服务中访问任务和节点信息
【发布时间】:2020-08-04 11:50:07
【问题描述】:

通过 docker 服务,我可以获得以下正在运行的任务和关联的节点。我想知道每个正在运行的任务如何检索其节点 ID 和任务名称?是否有任何环境变量可以访问这些?如果没有,我该如何设置?

$ docker service ps appservice

ID             NAME           IMAGE             NODE      DESIRED STATE  CURRENT STATE          ERROR  PORTS
0qihejybwf1x   appservice.1   appservice:3.0.5  manager1  Running        Running 8 seconds
bk658fpbex0d   appservice.2   appservice:3.0.5  worker2   Running        Running 9 seconds
5ls5s5fldaqg   appservice.3   appservice:3.0.5  worker1   Running        Running 9 seconds
8ryt076polmc   appservice.4   appservice:3.0.5  worker1   Running        Running 9 seconds
1x0v8yomsncd   appservice.5   appservice:3.0.5  manager1  Running        Running 8 seconds
71v7je3el7rr   appservice.6   appservice:3.0.5  worker2   Running        Running 9 seconds
4l3zm9b7tfr7   appservice.7   appservice:3.0.5  worker2   Running        Running 9 seconds
9tfpyixiy2i7   appservice.8   appservice:3.0.5  worker1   Running        Running 9 seconds
3w1wu13yupln   appservice.9   appservice:3.0.5  manager1  Running        Running 8 seconds
8eaxrb2fqpbn   appservice.10  appservice:3.0.5  manager1  Running        Running 8 seconds

【问题讨论】:

    标签: docker docker-compose containers docker-swarm


    【解决方案1】:

    我可以通过在 docker-compose 中设置环境变量来实现这一点。为了检索任务 ID,我在服务配置中添加了以下行:

    environment:
            - MYTASKID={{.Task.ID}}
    

    【讨论】:

    • 仅供未来访问者参考:我必须在 composefile 中将我的环境变量从映射语法更改为数组语法。不确定这是否适用于较新版本的 Docker;我的客户端和服务器在 18.06.1-ce。
    猜你喜欢
    • 2019-07-14
    • 2021-08-21
    • 2020-09-12
    • 2017-09-25
    • 1970-01-01
    • 2020-12-22
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多