我正在尝试部署 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
任何想法为什么我会收到此错误,如果我有任何配置问题?
最佳答案
由于您正在运行 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 接口(interface)上设置的任何内容。虽然不是那么好,因为它不是官方的并且可以在配置中更改,所以我建议链接。
关于docker - 使用 Consul Docker 容器配置 Vault Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516275/