请教 docker 挂载目录文件不同步的问题

2022-07-09 00:00:12 +08:00
 Askiz
我用的 docker 平台是 MacOS 版本的 docker desktop ,
有个需求是将宿主机的程序日志通过 docker -v 挂载到 docker 内部实现 docker 内部与宿主机文件同步,比如下面这个简单的程序

发现运行这个程序后,宿主机查看 test.log 有发生变化,但是 docker 内部的映射文件夹的文件并没有同步,但是在 ctrl+C 退出程序后,文件就马上同步到 docker 内部了。查阅了相关资料说可能是文件 inode 的问题,但是运行前后 inode 并没有发生变化,chmod 777 test.log 也未能解决该问题。
所以请问这是什么问题,该怎么解决程序运行时 docker 挂载目录文件不同步的问题呢?
1163 次点击
所在节点    Docker
3 条回复
Askiz
2022-07-09 00:23:55 +08:00
试了一下改用 fmt.Fprintln 写入文件的方法,用了 defer logFile.Close(),可以在程序运行时同步,看来应该是因为文件指针未关闭的原因
wd
2022-07-09 08:20:21 +08:00
你搜下 写文件 flush cache 的东西
fuxkcsdn
2022-09-16 23:32:59 +08:00
今天也遇到这个问题,印象中之前不会啊...而且在 windows 上一直是正常的

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

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

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

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

© 2021 V2EX