银河麒麟使用 docker 无法稳定映射卷分区

37 天前
TimG  TimG

目前有一个国产机需要部署 gitea ,机器运行银河麒麟 V10 SP1 系统,内核版本 5.4.18-110 。机器内有一个固态盘装系统,一个机械盘存储数据( exfat 格式,目录/media/kylin/data)。 docker-compose 中 volume 配置如下:

volumes:
  - /media/kylin/data/docker/gitea/data:/data
  - /media/kylin/data/docker/gitea/config:/etc/gitea
  - /etc/timezone:/etc/timezone:ro
  - /etc/localtime:/etc/localtime:ro

此配置运行正常,初始化 gitea 完成后已经上传了数个项目。但是机器重启之后系统又需要初始化,先前在 gitea 的上传的项目全部消失。排查发现/media/kylin/data这个目录变更到了/media/kylin/data1。目前/media/kylin/这个目录有两个子目录:data 和 data1 ,data 内目录结构与 data1 相同,但之前/media/kylin/data/docker/gitea/data的内容在/media/kylin/data1/docker/gitea/data中,config 目录也是。

我还有一个 PostgreSQL 服务使用 docker 部署,但其 volume 没有被移动到 data1 。

重新初始化 gitea 服务,上传项目,重启后 data 和 config 又被移动到了 data2 目录,现在/media/kylin/这个目录下有三个子目录:data 、data1 、data2 !

在系统自带的文件管理器中查看,发现确实有三个文件夹,但名字与终端中的目录名不同,分别为:data 、data 、data1 ,有两个 data 文件夹。

现在部署以后就不能重启了,一重启那个 data 卷就会跑路,不知道是谁的问题?

对 Linux 不是很了解,还望各位大佬赐教。

1737 次点击
所在节点   Linux  Linux
6 条回复
Judoon
Judoon
37 天前
你这个机械盘的挂载有写到/etc/fstab 吗?

大概率是有一个独立的服务检测磁盘并执行挂载,而你的 docker 启动在此之前,把目录先创建占用了。所以他依次往下创建目录
churchmice
churchmice
37 天前
你得去看/etc/fstab,用 uuid 去 mount
TimG
TimG
37 天前
@Judoon
@churchmice

谢谢二位回答,确实系统是默认的我没动,这样我有思路了
kokutou
kokutou
37 天前
是的 fatab 重新写一下,用 uuid 或者 lvm
yinmin
yinmin
36 天前
docker 跑的目录,建议别用 exfat ,改用 ext4 。因为 exfat 不是日志文件系统,万一系统掉电、系统崩溃,数据就废了,尤其是存储数据库。

exfat 只适合热备份文件,不适合频繁读写的数据,尤其是数据库文件。
TimG
TimG
36 天前
@yinmin 感谢提醒,已经格式化为 ext4 了

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

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

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

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

© 2021 V2EX