gpt4 book ai didi

mysql - 更改 Docker 设置后 MariaDB 数据是否丢失?

转载 作者:行者123 更新时间:2023-11-28 23:26:57 24 4
gpt4 key购买 nike

我已经设置了一个在 Docker 中运行的基本 MariaDB 实例 - 基本上是使用 Kitematic UI 启动容器,更改设置,然后让它运行。

今天,我想做一个备份,所以我用 Kitematic 更改了端口,这样我就可以从一台机器访问它来进行自动备份。在 Kitematic 中更改端口后,它似乎启动了一个新的 MariaDB 容器(即我所有的数据似乎都被删除了)。

这是预期的行为吗?而且,更重要的是,是否有任何方法可以恢复看似丢失的数据,或者是否已将其完全删除?

另外,如果数据确实被删除了,那么在不丢失所有更改的情况下更改设置(例如公开的端口)的首选方法是什么? docker commit

注释:

  • 为 OS X 运行 docker 1.12.0 beta
  • docker -ps a将数据库状态显示为“已运行 X 分钟”,而原始数据库已运行数天

提前致谢!

更新:

看起来推荐的保留数据的过程(不创建卷或类似的)是:

  1. 提交更改(例如 docker commit <containerid> <name/tag>)
  2. 使容器离线
  3. 更新设置,例如公开的端口或其他设置
  4. 运行已提交更改的图像

...取自this answer .

最佳答案

是的,这是预期的行为。如果你希望你的数据是持久的,你应该从主机(通过 --volume docker run 的选项)或从另一个容器装载卷,并将你的数据库文件存储在这个卷上.

docker run --volume /path/on/your/host/machine:/var/lib/mysql mariadb

丢失更改实际上是容器的核心功能,因此不能省略。通过这种方式,您可以确保在每次 docker run 之间获得全新的环境,无需任何更改。如果您希望更改是永久性的,您应该在图像的 Dockerfile 中进行更改,而不是在容器本身中进行。

更多信息请访问官方文档:https://docs.docker.com/engine/tutorials/dockervolumes/ .

关于mysql - 更改 Docker 设置后 MariaDB 数据是否丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38935619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com