繁体   English   中英

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

[英]Access IP address of Couchbase container on Docker Swarm cluster

尝试在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 }}' 922755302fef
Template parsing error: template: :1: unexpected ".8091" in operand; missing space?

什么是访问IP地址的正确格式?

.NetworkSettings.Ports属性是一个映射,而不是一个结构。 您可以使用index模板功能来访问地图(以及切片)值:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM