无法启动具有 mysql 存储的 Vault 容器

cannot start vault container with mysql storage

我正在尝试使用此命令启动具有 mysql 存储的 Vault docker 容器:

docker run  --cap-add=IPC_LOCK  -e 'VAULT_LOCAL_CONFIG={"storage": {"mysql": {"username":"root", "password":"hello", "database":"vault", "address":"127.0.0.1:3306"}}, "listener": {"tcp":{"address":"127.0.0.1:8200", "tls_disable":"1"}}, "default_lease_ttl": "168h", "max_lease_ttl": "720h"}' -e VAULT_SKIP_VERIFY=true vault server

这是我遇到的错误:

Error initializing storage of type mysql: failed to check mysql schema exist: dial tcp 127.0.0.1:3306: connect: connection refused

我可以使用我提供给上一个命令的用户名和密码连接到 mysql。

我还确保 mysql 在 3306 端口上是 运行

[root@jwahba]# netstat -tlpn | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      39552/mysqld   

我查看了 vault 官方文档 (here),但我的配置有什么问题并不明显。有什么建议吗?

您正在尝试从 Docker 容器连接到本地主机上的数据库,但它们位于不同的网络堆栈上。在 docker run 命令中使用 --net="host"; docker 容器中的 127.0.0.1 现在将指向您的 docker 主机。

来源:From inside of a Docker container, how do I connect to the localhost of the machine?