、您需要提前配置 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 容器之前,配置文件和必要的環境變量已正確設置。
如果你有更多具體的問題或需要進一步的幫助,請告訴我!