0

現在実行中のサービスのコンテナーを取得して、Portainer.io のように視覚化しようとしています。

Portainer は、現在実行中のマシンとレプリカを5/8のように表示します。

/servicesエンドポイントでエンジン API を使用して、目的のレプリカ番号を取得できます。私が見つけられなかったのは、現在実行中のサービスのコンテナです。

サービス エンドポイントは次のような結果を返します。

{
    "ID": "frf43534t43543t43gt435",
    "Version": {
        "Index": 10936
    },
    "CreatedAt": "2019-12-11T14:36:03.361254384Z",
    "UpdatedAt": "2019-12-11T14:40:19.911714617Z",
    "Spec": {
        "Name": "connector-service",
        "Labels": {
            "com.docker.stack.image": "connector",
            "com.docker.stack.namespace": "conn"
        },
        "TaskTemplate": {
            "ContainerSpec": {
                "Image": "connector:latest",
                "Labels": {
                    "com.docker.stack.namespace": "conn"
                },
                "Hostname": "connector-service{{.Task.Slot}}",
                "Env": [
                    "CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=3",
                    "CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=3"
                ],
                "Privileges": {
                    "CredentialSpec": null,
                    "SELinuxContext": null
                },
                "Isolation": "default"
            },
            "Resources": {},
            "Placement": {},
            "Networks": [
                {
                    "Target": "sfer32432fr4ewt4r3g4tr54",
                    "Aliases": [
                        "connector-service"
                    ]
                }
            ],
            "ForceUpdate": 0,
            "Runtime": "container"
        },
        "Mode": {
            "Replicated": {
                "Replicas": 6
            }
        },
        "EndpointSpec": {
            "Mode": "vip",
            "Ports": [
                {
                    "Protocol": "tcp",
                    "TargetPort": 8083,
                    "PublishedPort": 8083,
                    "PublishMode": "ingress"
                }
            ]
        }
    },

    "Endpoint": {
        "Spec": {
            "Mode": "vip",
            "Ports": [
                {
                    "Protocol": "tcp",
                    "TargetPort": 8083,
                    "PublishedPort": 8083,
                    "PublishMode": "ingress"
                }
            ]
        },
        "Ports": [
            {
                "Protocol": "tcp",
                "TargetPort": 8083,
                "PublishedPort": 8083,
                "PublishMode": "ingress"
            }
        ],
        "VirtualIPs": [
            {
                "NetworkID": "safcedsvcsg4425r32dsf",
                "Addr": "10.0.0.55/24"
            },
            {
                "NetworkID": "sfsfe4233fr3g435432greg43",
                "Addr": "10.0.3.11/24"
            }
        ]
    }
}
4

1 に答える 1