Docker挂载文件的更新问题

  1. 一、起因:
  2. 二、原因:
    1. 1、现象:
    2. 2、原因:
  3. 三、解决方案:
  4. 四、其他:
    1. 1、查看inode的方法:
    2. 2、容器中应用平滑重启:

一、起因:

项目中经常会有需求,宿主机上放有配置文件,然后挂载到docker容器内。待宿主机配置文件更新后,docker容器内挂载的文件同步更新。但事与愿违。

二、原因:

1、现象:

将宿主机配置文件挂载到容器,在宿主机修改配置文件,但容器内挂载的文件并未发生变化,直至docker重启。

2、原因:

docker挂载文件基于inode。vim等编辑工具保存文件时,并非直接保存,而是将一份新的临时文件覆盖了旧文件。对于inode而言,原文件并未被修改。

三、解决方案:

  1. 换用nano、cat等直接更新文件的编辑工具

  2. 改为挂载目录。

  3. 修改vim配置,添加:set backupcopy=yes

四、其他:

1、查看inode的方法:

  1. stat xxx.txt
  2. ls -i xxx.txt

2、容器中应用平滑重启:

方法就是将一个cmd传入容器中,nginx容器如下:

docker exec -it my_nginx nginx -s reload


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 lxwno.1@163.com

×

喜欢就点赞,疼爱就打赏