我已经设置了一个在 Docker 中运行的基本 MariaDB 实例——基本上是从使用 Kitematic UI 启动容器、更改设置并让它运行。
今天,我想进行备份,所以我使用 Kitematic 更改了端口,以便我可以从机器访问它以进行自动备份。在 Kitematic 中更改端口后,它似乎启动了一个新的 MariaDB 容器(即我的所有数据似乎都被删除了)。
这是预期的行为吗?而且,更重要的是,有什么办法可以恢复看似丢失的数据,还是已经完全删除了?
此外,如果实际删除了数据,那么在不丢失所有更改的情况下更改设置(例如暴露的端口)的首选方法是什么? docker commit
?
笔记:
- 为 OS X 运行 docker 1.12.0 beta
docker -ps a
当原始数据库已经运行了几天时,数据库状态显示为“Up for X minutes”
提前致谢!
更新:
保留数据(不创建卷或类似内容)的推荐过程似乎是:
- 提交更改(例如
docker commit <containerid> <name/tag>
) - 使容器脱机
- 更新设置,例如暴露的端口或其他任何东西
- 运行已提交更改的映像
...取自这个答案。