保持API有此端点https://{portainer_url}/api/stacks/{id}
返回模式(使用示例中的响应)
{
"Id": "myStack_jpofkc0i9uo9wtx1zesuk649w",
"Name": "myStack",
"Type": 1,
"EndpointID": 1,
"EntryPoint": "docker-compose.yml",
"SwarmID": "jpofkc0i9uo9wtx1zesuk649w",
"ProjectPath": "/data/compose/myStack_jpofkc0i9uo9wtx1zesuk649w",
"Env": [
{
"name": "MYSQL_ROOT_PASSWORD",
"value": "password"
}
]
}我希望使用从响应返回的"SwarmID“来获取节点url。
但是,通过检查SwarmID从docker node ls返回的结果,不存在响应给出的匹配SwarmID。
我想知道SwarmID到底是由维护者返回的吗?或者任何其他方法都可以帮助我获得某个特定堆栈部署到的节点?
发布于 2022-01-18 08:07:07
可以在群集初始化后查看SwarmID,在manager节点中使用docker命令,作为我们可以在码头文档中看到。
$ docker info
<...>
ClusterID: 9vs5ygs0gguyyec4iqf2314c0
Managers: 1
Nodes: 1
Data Path Port: 7777
<...>此clusterId对应于需要创建堆栈:https://app.swaggerhub.com/apis/deviantony/Portainer/1.23.2/#/stacks/StackCreate时在portainer中请求的swarmId。
您可以通过portainer对docker信息执行GET请求:
request({
url: PORTAINER_URL + '/api/endpoints/' + ENDPOINT_ID + '/docker/info',
method: 'GET',
headers: {
'Content-Type': ' application/json',
'Authorization': 'Bearer ' + bearer
}
}, function (error, response, body) {...});https://stackoverflow.com/questions/66487127
复制相似问题