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

标签 go docker couchbase

尝试在 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 template function访问映射(以及 slice )值:

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

但是请注意,这可能并不总是返回您期望的结果。如果容器配置为监听所有 主机接口(interface),这将简单地返回0.0.0.0。你可以看看 networking feature这是在 Docker 1.9 中引入的,无需依赖查找主机 IP 地址。

关于go - 访问Docker Swarm集群上Couchbase容器的IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34690359/

相关文章:

go - 如何更新 golang 时间的小时、分钟、秒?

logging - 我可以在 Docker swarm 上使用 logspout 进行全局 syslog 日志记录吗?

r - Docker Shiny Server自动进入示例欢迎页面

node.js - 如何在 Linux 上设置 "Launch Couchbase Server"?

performance - Go http 服务器在请求转发时性能不佳

parsing - 解析交替字符字符串的简洁语法,如 "ababa"或 "baba"

xml - 具有相同标签的 Golang XML 创建

Docker:无法启动服务 nginx

mapreduce - Couchbase:为什么我的 View 永远不会返回超过 22 行?

node.js - 使用 couchbase 检查数据库 Node js 中是否已存在用户