为了账号安全,请及时绑定邮箱和手机立即绑定

访问 Docker Swarm 集群上 Couchbase 容器的 IP 地址

访问 Docker Swarm 集群上 Couchbase 容器的 IP 地址

Go
慕容3067478 2021-12-06 19:52:57
尝试在 Docker Swarm 集群上运行 Couchbase 集群。集群启动后,我想动态获取每个Couchbase实例的IP地址。docker inspect显示:"NetworkSettings": {        "Bridge": "",        "SandboxID": "325807d55b552be3fe5b44b4d975c2486b3a56b320aa56fa0367e42348b82d64",        "HairpinMode": false,        "LinkLocalIPv6Address": "",        "LinkLocalIPv6PrefixLen": 0,        "Ports": {            "11207/tcp": null,            "11210/tcp": [                {                    "HostIp": "192.168.99.101",                    "HostPort": "11210"                }            ],尝试访问 IP 地址会出现错误:docker inspect --format '{{ .NetworkSettings.Ports.8091/tcp[0].HostIp }}' 922755302fefTemplate parsing error: template: :1: unexpected ".8091" in operand; missing space?访问 IP 地址的正确格式是什么?
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

该属性.NetworkSettings.Ports是地图,而不是结构。您可以使用index模板函数访问地图(以及切片)值:

$ docker inspect --format '{{ index .NetworkSettings.Ports "8091/tcp" 0 "HostIp" }}'

但是请注意,这可能并不总是返回您期望的结果。如果容器配置为侦听所有主机接口,这将简单地返回0.0.0.0. 您可以查看Docker 1.9 为此引入的网络功能,而无需依赖于查找主机 IP 地址。


查看完整回答
反对 回复 2021-12-06
  • 1 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信