docker 装 db 数据备份恢复的问题

274 天前
 helee9199

测试用,在 docker 里装了 sqlserver 使用的是 docker-commose 启动 配置里挂载映射到了外部磁盘。 volumes: - /mnt/myroot/dbdata/sqlserver_data:/var/opt/mssql/data 今天因故重装了系统。外部磁盘没变。 装好系统和 docker 后, 设置好映射路径, 但是没资料 是哪里姿势不对? 权限什么的也设置对了 我的理解是,文件夹映射后 数据是存在磁盘里。 重装系统后只需要映射就好。 不知道是我理解有误 还是我操作有误。

1586 次点击
所在节点    Docker
8 条回复
KB12312
274 天前
之前遇到过一次,Mongo 换了容器之后一直挂载不上,进容器创建文件,外面能看见,但是外面目录下的文件容器里又看不见。确实很奇怪,不知道有没有大神知道原因的。
oneisall8955
274 天前
检查下/mnt/myroot/dbdata/sqlserver_data 有文件吗
huangsijun17
274 天前
再 exec 到容器里,看一下/var/opt/mssql/data 的情况如何?
helee9199
274 天前
@oneisall8955 文件肯定是有的,这次唯一的区别是 原本 dbdata 是放在系统盘的,因为重装系统要格式化盘所以我吧整个 dbdata 挪到了 B 盘 ,就是为了方便重装系统的时候资料不丢 设置好了挂载和权限.我现在在想, 我先是未挂载启动,然后停止容器,然后再挂载启动的,因为还有安装 oracle 好像得跑一次产生原本的资料后再挂载的.


@huangsijun17 容器里的应该就是原始数据吧? 所以挂载应该是相当于把资料存到我挂载的路径吧?这个要如何理解?
oneisall8955
274 天前
如果你怕挂载与容器启动顺序问题,可以
docker-compose down 再 docker-compose up -d

down 会先删除容器,up 会是个新的容器
guanzhangzhang
274 天前
1. 看看镜像的 DOckerfile 的 volume 未知是否变了
2. 还有启动脚本看看,是不是 env 或者配置文件改变了 data 目录
3. 是不是之前你就挂载错了数据目录,例如容器内是/var/lib/mssql/data
Belmode
274 天前
是用了 wsl 吗?
helee9199
274 天前
@guanzhangzhang 折腾了半天 反复试验终于破案了.感觉和挂载盘有关, 挂在外置盘不行,复制到系统盘路径里设置好权限以后 SQLSERVER 就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1017675

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX