1

我正在 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

它工作正常,但是当我尝试发送休息以检查保险库是否已初始化时:获取对以下 url 的请求: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

没有在网上找到任何正确解释问题的地方,或者我做错了什么。

有任何想法吗?

4

1 回答 1

4

如果在 Docker 容器中运行的服务器绑定到 127.0.0.1,则该特定容器之外的任何东西都无法访问它(并且由于容器通常只运行一个进程,这意味着任何人都无法访问它)。将监听地址改为0.0.0.0:8200;如果您需要限制对 Vault 服务器的访问,请将其绑定到docker run -p选项中的特定主机地址。

于 2018-09-20T10:55:46.183 回答