使用Consul Docker容器配置Vault Docker容器

时间:2018-09-26 11:04:22

标签: docker consul hashicorp-vault

我正在尝试部署Vault Docker映像以将Consul Docker映像用作其存储。

我具有以下用于Vault容器的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

有什么主意为什么会出现此错误以及是否有任何配置问题?

1 个答案:

答案 0 :(得分:1)

因为您正在运行docker,所以您指向的“ 127.0.0.1”地址将在docker内部,但领事不在此处侦听,而是在docker-servers本地主机上侦听!

因此,我建议您在启动Vault docker并在配置中设置“ address”:“ consul:8500”时做一个链接(--link consul:consul)。

或者,将“ address”:“ 127.0.0.1:8500”更改为“ address”:“ 172.17.0.1:8500”,以使其连接到转发了8500的Docker服务器。IP是在docker0接口上设置的。虽然不是很好,因为它不是官方的,并且可以在配置中更改,所以我建议链接。