我正在Ubuntu 16.04上部署Vault docker映像,我已经成功从映像本身内部对其进行了初始化,但是我无法获得任何Rest响应,甚至curl也无法正常工作。
我正在执行以下操作:
创建配置文件local.json
:
{
"listener": [{
"tcp": {
"address": "127.0.0.1:8200",
"tls_disable" : 1
}
}],
"storage" :{
"file" : {
"path" : "/vault/data"
}
}
"max_lease_ttl": "10h",
"default_lease_ttl": "10h",
}
在/vault/config
目录下
运行命令以启动图像
docker run -d -p 8200:8200 -v /home/vault:/vault --cap-add=IPC_LOCK vault server
输入图像的bash终端:
docker exec -it containerId /bin/sh
在以下命令中运行
export VAULT_ADDR='http://127.0.0.1:8200'
并且比vault init
它工作正常,但是当我尝试发送其余信息以检查保险库是否已初始化时:
获取对以下网址的请求:http://Ip-of-the-docker-host:8200/v1/sys/init
没有回应。
甚至curl命令失败:
curl http://127.0.0.1:8200/v1/sys/init
curl: (56) Recv failure: Connection reset by peer
请在网上找到任何地方,并提供适当的解释,这是什么问题,或者我做错了什么。
有什么想法吗?
答案 0 :(得分:2)
如果在Docker容器中运行的服务器绑定到127.0.0.1,则从该特定容器之外的任何内容都无法访问该服务器(并且由于容器通常仅运行单个进程,因此任何人都无法访问该服务器)。将侦听器地址更改为0.0.0.0:8200;如果需要限制对Vault服务器的访问,请在docker run -p
选项中将其绑定到特定的主机地址。