docker 重启时数据库丢失
database lost on docker restart
我 运行 influxdb 和 grafana Docker 与 Windows 10.
每次关闭 Docker,我都会丢失数据库。
这是我知道的:
- 我试过调整保留策略,对
结果
- 我可以关闭并重新启动容器(docker-compose down)并且数据库仍然存在。只有当我为 Windows 关闭 Docker 时,我才会丢失数据库。
- 创建新数据库时,我在映射目录中没有看到任何新文件夹 (/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
我认为问题与安装的卷有关,而不是 docker 或 influxdb。您应该首先找到influxdb存储数据的位置(默认情况下它在您的主文件夹“~user/.influxdb”中windows)然后生成influxdb.conf文件,最后挂载卷。
如果您使用的是 docker-compose down/up
,请记住这不是 "restart",因为:
docker-compose up
创建新的 容器和
docker-compose down
删除它们 :
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
的建议
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
我 运行 influxdb 和 grafana Docker 与 Windows 10.
每次关闭 Docker,我都会丢失数据库。
这是我知道的:
- 我试过调整保留策略,对 结果
- 我可以关闭并重新启动容器(docker-compose down)并且数据库仍然存在。只有当我为 Windows 关闭 Docker 时,我才会丢失数据库。
- 创建新数据库时,我在映射目录中没有看到任何新文件夹 (/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
我认为问题与安装的卷有关,而不是 docker 或 influxdb。您应该首先找到influxdb存储数据的位置(默认情况下它在您的主文件夹“~user/.influxdb”中windows)然后生成influxdb.conf文件,最后挂载卷。
如果您使用的是 docker-compose down/up
,请记住这不是 "restart",因为:
docker-compose up
创建新的 容器和docker-compose down
删除它们 :
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
的建议
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