docker 重启时数据库丢失

database lost on docker restart

我 运行 influxdb 和 grafana Docker 与 Windows 10.

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

这是我知道的:

这是我的 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

我认为问题与安装的卷有关,而不是 docker 或 influxdb。您应该首先找到influxdb存储数据的位置(默认情况下它在您的主文件夹“~user/.influxdb”中windows)然后生成influxdb.conf文件,最后挂载卷。

如果您使用的是 docker-compose down/up,请记住这不是 "restart",因为:

docker-compose up

Builds, (re)creates, starts, and attaches to containers for a service.

docker-compose down

Stops containers and removes containers, networks, volumes, and images created by up.

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

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

您处理相同的容器,即您 运行 docker-compose up.

时创建的容器

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

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

docker-compose restart

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

restart: always

根据 linode.com site

的建议
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