数据库在docker重启时丢失了

时间:2018-01-19 00:09:26

标签: database docker influxdb grafana

我正在使用Windows 10在Docker上运行Influxdb和grafana。

每当我关闭Docker时,我都会丢失数据库。

以下是我所知道的:

  • 我尝试过调整保留政策,对此没有影响 结果
  • 我可以关闭并重新启动容器(docker-compose down),数据库仍在那里。只有当我关闭Docker for Windows时,我才会丢失数据库。
  • 创建新数据库(/ data / Influxdb / data /)时,我在映射目录中看不到任何新文件夹。只有'_internal'文件夹仍然存在,我认为这对应于名为'_internal'的持久数据库

这是我的yml文件。非常感谢任何帮助。

version: '3'

services:
  # Define an InfluxDB service
  influxdb:
    image: influxdb
    volumes:
      - ./data/influxdb:/var/lib/influxdb
    ports:
      - "8086:8086"
      - "80:80"
      - "8083:8083"
  grafana:
    image: grafana/grafana
    volumes:
      - ./data/grafana:/var/lib/grafana
    container_name: grafana
    ports:
      - "3000:3000"
    env_file:
      - 'env.grafana'
    links:
      - influxdb
  # Define a service for using the influx CLI tool.
  # docker-compose run influxdb-cli
  influxdb-cli:
    image: influxdb
    entrypoint:
      - influx
      - -host
      - influxdb
    links:
      - influxdb

4 个答案:

答案 0 :(得分:7)

如果您使用的是docker-compose down/up,请注意,这不是"重启"这是因为:

  

docker-compose up

     

构建,(重新)创建,启动和附加服务的容器。

     

docker-compose down

     

停止容器并删除由up创建的容器,网络,卷和图像。

另一方面,如果你继续使用:

  • docker-compose start
  • docker-compose stop
  • docker-compose restart

您处理相同的容器,即运行docker-compose up时创建的容器。

答案 1 :(得分:0)

我认为问题与已安装的卷而非docker或Influxdb有关。您应该首先找到Influxdb存储数据的位置(默认情况下它位于您的主文件夹" ~user / .inluxdb"在Windows中),然后生成Influxdb.conf文件,最后安装卷。

答案 2 :(得分:0)

这似乎对我有用,但是以防万一其他人正在阅读与我相同的问题,与我的Docker Wordpresscompose站点的连接丢失了。 似乎需要重新启动。

我使用了@tgogos的建议,并输入了docker根文件夹中的shell终端:

docker-compose restart

但是在执行此操作之前,我编辑了yml文件docker-compose.yml,其中还包括:

restart: always

根据linode.com site

的建议

答案 3 :(得分:0)

docker-compose down

除非指定,否则上述命令不应删除卷。

https://docs.docker.com/compose/reference/down/

我尝试了以下 docker-compose.yaml 文件,即使使用 down 或 rm docker 命令也能保留数据。

version: '3'
services:
  influxdb:
    image: influxdb:2.0
    ports:
      - 8086:8086
    volumes:
      - influxdb-data:/var/lib/influxdb2
    restart: always
volumes:
  influxdb-data:
    external: true