Config Vault Docker 容器与 Consul Docker 容器

Config Vault Docker container with Consul Docker container

我正在尝试部署 Vault Docker 图像以使用 Consul Docker 图像作为其存储。

我有以下 Json 保管库容器配置文件:

 {
    "listener": [{
            "tcp": {
                    "address": "0.0.0.0:8200",
                    "tls_disable" : 1
            }
    }],

    "storage" :{
            "consul" : {
              "address" :"127.0.0.1:8500"
              "path"    :"vault/"

            }
    }
    "max_lease_ttl": "10h",
    "default_lease_ttl": "10h",
    "ui": true,
 }

运行 领事容器:

docker run -d -p 8501:8500 -it consul

比 运行 金库容器:

docker run -d -p 8200:8200 -v /root/vault:/vault --cap-add=IPC_LOCK vault server

保管库容器启动后立即停止 运行,并且在查询日志时收到以下错误:

Error detecting api address: Get http://127.0.0.1:8500/v1/agent/self: dial tcp 127.0.0.1:8500: connect: connection refused
Error initializing core: missing API address, please set in configuration or via environment

知道我为什么会收到此错误吗?我是否有任何配置问题?

因为你是 运行 docker,你指向的“127.0.0.1”地址将在你的 docker 中,但 consul 没有在那里听,它正在监听您的 docker-servers 本地主机!

所以我建议您在启动保险库 docker 时执行 link (--link consul:consul) 并设置 "address" : "consul:8500" 在配置中。

或者,将 "address" :"127.0.0.1:8500" 更改为 "address" :"172.17.0.1:8500" 以让它连接到您的 docker 服务器转发 8500。 IP 是在 docker0 界面上设置的任何内容。不太好,因为它不是官方的并且可以在配置中更改,所以我推荐 linking。