使用 Consul Docker 容器配置保管库 Docker 容器



我正在尝试部署 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 服务器本地主机上监听!

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

或者,将"地址":"127.0.0.1:8500">

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

最新更新