V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Askiz
V2EX  ›  Docker

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

  •  
  •   Askiz · 2022-07-09 00:00:12 +08:00 · 1327 次点击
    这是一个创建于 867 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用的 docker 平台是 MacOS 版本的 docker desktop ,
    有个需求是将宿主机的程序日志通过 docker -v 挂载到 docker 内部实现 docker 内部与宿主机文件同步,比如下面这个简单的程序

    发现运行这个程序后,宿主机查看 test.log 有发生变化,但是 docker 内部的映射文件夹的文件并没有同步,但是在 ctrl+C 退出程序后,文件就马上同步到 docker 内部了。查阅了相关资料说可能是文件 inode 的问题,但是运行前后 inode 并没有发生变化,chmod 777 test.log 也未能解决该问题。
    所以请问这是什么问题,该怎么解决程序运行时 docker 挂载目录文件不同步的问题呢?
    3 条回复    2022-09-16 23:32:59 +08:00
    Askiz
        1
    Askiz  
    OP
       2022-07-09 00:23:55 +08:00
    试了一下改用 fmt.Fprintln 写入文件的方法,用了 defer logFile.Close(),可以在程序运行时同步,看来应该是因为文件指针未关闭的原因
    wd
        2
    wd  
       2022-07-09 08:20:21 +08:00 via iPhone
    你搜下 写文件 flush cache 的东西
    fuxkcsdn
        3
    fuxkcsdn  
       2022-09-16 23:32:59 +08:00
    今天也遇到这个问题,印象中之前不会啊...而且在 windows 上一直是正常的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5779 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 151ms · UTC 06:21 · PVG 14:21 · LAX 22:21 · JFK 01:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.