无法启动具有 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?
我正在尝试使用此命令启动具有 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?