Я использую режим роя, и я хотел бы получить VirtualIP от службы в конкретной сети: 6yhxlmtq69zaojpy57xdvaeiw Результат должен быть: 10.0.0.3/24Docker инспектировать формат IP извлечь из конкретной сети
[[email protected] vagrant]# docker service inspect tqy1id7zsg9s
[
{
"ID": "tqy1id7zsg9s7rftu8uu51g2l",
"Version": {
"Index": 72
},
"CreatedAt": "2017-01-19T07:56:13.30985464Z",
"UpdatedAt": "2017-01-19T07:56:13.312923681Z",
"Spec": {
"Name": "spark-master",
"TaskTemplate": {
"ContainerSpec": {
"Image": "fsoppelsa/spark-master:[email protected]:7aee2f405b 546584b75bc1ec6ec3bfb5744de52788058c3455a1b43817d6af84",
"Labels": {
"spark-master": ""
},
"Env": [
"SPARK_MASTER_IP=0.0.0.0"
],
"Mounts": [
{
"Type": "volume",
"Source": "spark",
"Target": "/data",
"VolumeOptions": {
"DriverConfig": {
"Name": "local"
}
}
}
],
"DNSConfig": {}
},
"Resources": {
"Limits": {},
"Reservations": {}
},
"RestartPolicy": {
"Condition": "any",
"MaxAttempts": 0
},
"Placement": {
"Constraints": [
"node.labels.type == sparkmaster"
]
},
"Networks": [
{
"Target": "6yhxlmtq69zaojpy57xdvaeiw"
}
],
"ForceUpdate": 0
},
"Mode": {
"Replicated": {
"Replicas": 1
}
},
"UpdateConfig": {
"Parallelism": 1,
"FailureAction": "pause",
"MaxFailureRatio": 0
},
"Networks": [
{
"Target": "spark"
}
],
"EndpointSpec": {
"Mode": "vip",
"Ports": [
{
"Protocol": "tcp",
"TargetPort": 8080,
"PublishedPort": 8080,
"PublishMode": "ingress"
}
]
}
},
"Endpoint": {
"Spec": {
"Mode": "vip",
"Ports": [
{
"Protocol": "tcp",
"TargetPort": 8080,
"PublishedPort": 8080,
"PublishMode": "ingress"
}
]
},
"Ports": [
{
"Protocol": "tcp",
"TargetPort": 8080,
"PublishedPort": 8080,
"PublishMode": "ingress"
}
],
"VirtualIPs": [
{
"NetworkID": "4w6z3pc3zspunw4n6199594ve",
"Addr": "10.255.0.9/16"
},
{
"NetworkID": "6yhxlmtq69zaojpy57xdvaeiw",
"Addr": "10.0.0.3/24"
}
]
},
"UpdateStatus": {
"StartedAt": "0001-01-01T00:00:00Z",
"CompletedAt": "0001-01-01T00:00:00Z"
}
}
]
с помощью этой команды я получаю:
docker service inspect spark-master -f {{.Endpoint.VirtualIPs}}
[{4w6z3pc3zspunw4n6199594ve 10.255.0.9/16} {6yhxlmtq69zaojpy57xdvaeiw 10.0.0.3/24}]
Как указать правильный формат, чтобы получить VirtualIp сети 6yhxlmtq69zaojpy57xdvaeiw?
увидеть мой ответ на http://stackoverflow.com/questions/30342796/how-to-get-env-variable-when-doing-docker-inspect/30353018#30353018 вы должны быть в состоянии извлечь соответствующая часть – user2915097
Что дает 'docker service inspect spark-master -f {{(index (.Endpoint.VirtualIPs) 0) .4w6z3pc3zspunw4n6199594ve}}' – user2915097
Я неправильно прочитал, лучше попробуйте 'docker service проверить spark-master -f {{index (.Endpoint.VirtualIPs) 1) .6yhxlmtq69zaojpy57xdvaeiw}} ' – user2915097