【问题标题】:Config Vault Docker container with Consul Docker container使用 Consul Docker 容器配置 Vault Docker 容器
【发布时间】:2018-09-26 11:04:22
【问题描述】:

我正在尝试部署 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

然后运行 ​​Vault 容器:

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-compose 在这里可能真的很有帮助。
  • @MattSchuchard 怎么样?
  • 您可以使用配置轻松创建两个容器之间的网络接口。
  • @MattSchuchard 有什么建议吗?

标签: docker consul hashicorp-vault


【解决方案1】:

由于您正在运行 docker,因此您指向的“127.0.0.1”地址将在您的 docker 内,但 consul 并没有在那里监听,它正在监听您的 docker-servers localhost!

所以我建议你在启动 vault docker 时做一个链接 (--link consul:consul),并在配置中设置 "address" :"consul:8500"。

或者,将 "address" :"127.0.0.1:8500" 更改为 "address" :"172.17.0.1:8500" 以使其连接到转发 8500 的 docker 服务器。IP 是在 docker0 接口上设置的任何内容.虽然不是那么好,因为它不是官方的并且可以在配置中更改,所以我建议链接。

【讨论】:

  • 172.17.01 不是全IP,少了几号?
  • 172.17.0.1,即默认的docker网络IP,但是可以覆盖,所以验证一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多