、您需要提前配置 MongoDB 和 InfluxDB。让我帮您说明配置步骤:
MongoDB 配置
- 启动 MongoDB 容器后,进入容器创建数据库:
# 进入 MongoDB 容器
docker exec -it mongo mongosh -u root -p 123456# 创建 product 数据库
use product# 创建集合(可选,MongoDB 会自动创建)
db.createCollection("thing_models")# 退出
exit
InfluxDB 配置
对于 InfluxDB 1.8,需要进入容器进行初始配置:
# 进入 InfluxDB 容器
docker exec -it influxdb1.8 influx -username admin -password adminpassword# 创建数据库(InfluxDB 1.8 使用数据库概念,不是 bucket)
CREATE DATABASE influx# 创建用户(可选)
CREATE USER root WITH PASSWORD 'root' WITH ALL PRIVILEGES# 授权
GRANT ALL PRIVILEGES ON influx TO root# 退出
exit
配置文件修改
根据您的 docker-compose 配置,需要修改配置文件:
# 修改 MongoDB 连接字符串,添加认证
mongodb_uri: 'mongodb://root:123456@localhost:27017'
mongodb_db: 'product'# 修改 InfluxDB 配置(InfluxDB 1.8 版本)
influx_url: 'http://localhost:8086'
influx_username: 'admin' # 使用 admin 用户
influx_password: 'adminpassword' # 使用 admin 密码
influx_db: 'influx' # InfluxDB 1.8 使用 db 而不是 bucket
重要说明
-
InfluxDB 1.8 vs 2.x 的区别:
- 1.8 版本使用
database
概念,不是bucket
- 1.8 版本使用用户名/密码认证,不是 token
- 1.8 版本没有
org
概念
- 1.8 版本使用
-
如果您的代码是为 InfluxDB 2.x 编写的,建议升级到 2.x 版本:
influxdb:image: influxdb:2.7container_name: influxdb2.7restart: unless-stoppedports:- "8086:8086"volumes:- /docker_volume/influxdb/data:/var/lib/influxdb2environment:DOCKER_INFLUXDB_INIT_MODE: setupDOCKER_INFLUXDB_INIT_USERNAME: adminDOCKER_INFLUXDB_INIT_PASSWORD: adminpasswordDOCKER_INFLUXDB_INIT_ORG: influxDOCKER_INFLUXDB_INIT_BUCKET: influxDOCKER_INFLUXDB_INIT_ADMIN_TOKEN: your-admin-token
- 或者修改代码以适配 InfluxDB 1.8:
- 将
bucket
改为database
- 将
token
认证改为用户名/密码认证 - 移除
org
相关代码
- 将
您希望使用哪个版本的 InfluxDB?我可以帮您调整相应的配置。
在使用 Docker 安装 InfluxDB 1.8 时,配置数据库、用户和密码以及管理管理员账户可以通过环境变量和配置文件来实现。以下是详细的步骤和说明:
1. 使用环境变量配置管理员用户和密码
InfluxDB 1.8 支持通过环境变量来配置管理员用户和密码。这是最简单的方法,适用于快速启动和基本配置。
步骤:
-
Docker Compose 文件配置
在你的
docker-compose.yml
文件中,配置 InfluxDB 服务如下:version: '3.8'services:influxdb:image: influxdb:1.8container_name: influxdb1.8restart: unless-stoppedports:- "8086:8086"volumes:- /docker_volume/influxdb/data:/var/lib/influxdb- /docker_volume/influxdb/config:/etc/influxdbenvironment:INFLUXDB_HTTP_AUTH_ENABLED: "true"INFLUXDB_ADMIN_USER: adminINFLUXDB_ADMIN_PASSWORD: adminpasswordhealthcheck:test: curl -f http://localhost:8086/ping || exit 1interval: 10stimeout: 5sretries: 3
docker run --rm influxdb:1.8 influxd config > /docker_volume/influxdb/config/influxdb.conf
说明:
INFLUXDB_HTTP_AUTH_ENABLED
: 启用 HTTP 认证。INFLUXDB_ADMIN_USER
: 设置管理员用户名。INFLUXDB_ADMIN_PASSWORD
: 设置管理员密码。
-
启动 Docker 容器
运行以下命令启动 InfluxDB 容器:
docker-compose up -d
这将启动 InfluxDB,并创建一个名为
admin
的管理员用户,密码为adminpassword
。
2. 使用配置文件进行高级配置
如果需要更复杂的配置,例如创建额外的用户、数据库和权限,可以使用 InfluxDB 的配置文件。
步骤:
-
创建配置文件
在主机上创建一个配置文件,例如
/docker_volume/influxdb/config/influxdb.conf
,并添加以下内容:[http]enabled = truebind-address = ":8086"auth-enabled = truelog-enabled = truewrite-tracing = falsepprof-enabled = falsehttps-enabled = false
说明:
auth-enabled = true
: 启用认证。
-
配置管理员用户
在容器启动后,可以通过 InfluxDB 的 CLI 工具创建管理员用户。
docker exec -it influxdb1.8 influx
进入 InfluxDB CLI 后,执行以下命令:
CREATE USER admin WITH PASSWORD 'adminpassword' WITH ALL PRIVILEGES;
说明:
- 这将创建一个名为
admin
的管理员用户,密码为adminpassword
,并赋予所有权限。
- 这将创建一个名为
-
创建额外的用户和数据库
你可以继续在 InfluxDB CLI 中创建其他用户和数据库,并分配相应的权限。例如:
CREATE DATABASE mydb; CREATE USER alice WITH PASSWORD 'password123'; GRANT ALL PRIVILEGES ON mydb TO alice;
3. 验证配置
-
重启 InfluxDB 容器
如果你修改了配置文件,需要重启容器以应用更改:
docker-compose restart
-
测试连接
使用管理员凭据连接到 InfluxDB:
influx -username admin -password adminpassword -host localhost -port 8086
如果连接成功,说明配置正确。
docker run --rm influxdb:1.8 influxd config > /docker_volume/influxdb/config/influxdb.conf
4. 使用 Docker 环境变量和配置文件结合
你也可以结合使用环境变量和配置文件,以实现更灵活的配置。例如,先通过环境变量设置管理员用户和密码,再通过配置文件创建其他用户和数据库。
5. 注意事项
- 安全性:确保将管理员密码设置为强密码,并妥善保管。
- 权限管理:根据需要为不同的用户分配最小权限,避免过度授权。
- 备份:定期备份 InfluxDB 数据,以防止数据丢失。
总结
- 环境变量:通过
INFLUXDB_ADMIN_USER
和INFLUXDB_ADMIN_PASSWORD
环境变量可以快速配置管理员用户和密码。 - 配置文件:使用 InfluxDB 的配置文件可以实现更复杂的配置,包括创建额外的用户和数据库。
- Docker 启动顺序:确保在启动 InfluxDB 容器之前,配置文件和必要的环境变量已正确设置。
如果你有更多具体的问题或需要进一步的帮助,请告诉我!