docker - InfluxDB 只有在 auth 关闭时才能创建第一个用户

标签 docker influxdb

有没有办法在启用身份验证的 InfluxDB 中创建用户?免责声明:我是 InfluxDB 的新手。

我创建了一个运行 InfluxDB 的 Docker 容器,通过在 influxdb.conf 文件的 http 部分设置 auth-enabled = true 启用身份验证.

[http]
  ...
  # Determines whether user authentication is enabled over HTTP/HTTPS.
  auth-enabled = true
  ...

由于没有用户,我尝试使用以下命令创建一个:

docker exec influxdb influx -execute "create user admin with password 'blabla' with all privileges"

但是,这失败了

"stdout": "ERR: error authorizing query: no user provided

所以这是一个先有鸡还是先有蛋的问题。您无法创建用户,因为这首先需要以用户身份登录。

它在禁用身份验证时工作。所以我可以做到以下几点:

  1. 创建禁用身份验证的配置。
  2. 启动 InfluxDB
  3. 创建用户
  4. 更改配置以启用身份验证。
  5. 重启 InfluxDB

但在这种情况下,我必须将配置存储在特定的 Docker 卷中,并且当任何人无需身份验证即可登录时,它仍然会留下一个窗口。所以它可以自动化,但它不是一个优雅的解决方案。

这个问题有没有优雅的解决方案?

最佳答案

大多数数据库镜像提供了一种通过环境变量配置 admin-useradmin-passwort 的方法。 InfluxDB 也这样做: https://hub.docker.com/_/influxdb/

在您的容器中设置环境变量 INFLUXDB_ADMIN_USERINFLUXDB_ADMIN_PASSWORD 以使用给定密码创建管理员用户。您还可以通过环境变量 INFLUXDB_HTTP_AUTH_ENABLED

启用身份验证

关于docker - InfluxDB 只有在 auth 关闭时才能创建第一个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49977385/

相关文章:

grafana - 我可以计算 InfluxDB 中字段的移动总和吗?

docker - 如何调试为什么Telegraf不将数据从MQTT发送到influxdb

influxdb - 查询 InfluxDB 每天的特定时间

monitoring - 以编程方式导出 grafana 仪表板的图像 (png/jpg)

amazon-web-services - 使用 Dockerrun.aws.json 通过 CLI deploy 命令部署到 elasticbeanstalk

mysql - Docker - 无法启动mysql权限错误

python - miniconda 环境的Docker多阶段构建

spark-streaming - 时间序列数据库与流分析引擎(如 Spark Streaming)之间的区别

docker - 如何在Docker Compose中为容器和图像命名?

amazon-web-services - 从私有(private) Docker 存储库将镜像部署到 AWS Elastic Beanstalk