首页 > 解决方案 > 使用 docker 在机器之间持久化 influxDB 数据

问题描述

我在 docker 容器中运行的 influxDB 中的数据持久性存在问题。influxDB 容器由以下 docker-compose 文件启动:

services:
  influxdb:
    image: influxdb:1.8.6
    restart: always
    container_name: influxDB
    volumes:
      - ./influxDB_data:/var/lib/influxdb
    ports:
      - "8083:8083"
      - "8086:8086"
    environment:
      - INFLUXDB_ADMIN_USER=admin
      - INFLUXDB_ADMIN_PASSWORD=xxxx
      - INFLUXDB_DB=openhab_db

所以数据应该保存在本地文件夹中./influxDB_data,当我关闭docker-compose down并重新启动docker-compose up -d容器时,情况似乎就是这样,因为所有时间序列数据仍然存在。

但是,如果我关闭容器并将所有文件从本地./influxDB_data文件夹移动到另一台机器并在那里启动容器,则只有数据库设置被持久化,所有系列数据都将丢失。似乎并非所有来自 influx 的数据都存储在/var/lib/influxdb (可能在 ram 中或不同的位置?)。但是如果是这样的话,为什么数据首先要持久化在同一台机器上呢?有谁知道如何解决这个问题?

标签: dockerinfluxdb

解决方案


推荐阅读