zoukankan      html  css  js  c++  java
  • docker挂载单文件问题

    关于docker中文件夹挂载成功 但是单文件挂载却没有生效的问题

    因为用vim修改这里会有一个坑

    docker -v mount 的机制:
    -v mount 文件(或文件夹)时,docker 记录的是该文件的 inode,并用 inode 追踪。当用 vim 编辑了文件后,这个文件的 inode 就变了,也就是说这个 default.conf 文件已经不是运行 docker run 时的那个 default.conf 文件了,容器中自然也就没了新的改动。 同时该 issue 的 opener 使用的是 sed -i 修改,也会使 inode 发生变化,sed -i 的机制是创建一个新的临时文件,修改完后在重命名。对此,官方的建议是挂载文件夹,而不是文件。
    https://github.com/moby/moby/issues/6011

    上面这段参考:https://www.dazhuanlan.com/2020/01/02/5e0d7cfd57df8/

    经测试发现,我挂载单文件的nginx的container,没重启之前修改挂载的单文件没有生效,但重启之后修改的配置文件确实会更新,对于nginx来说配置更新本身就需要重启,所以挂载文件其实也可以。但对于那些需要修改单文件但又想不重启container就可以实现更新的情况可以考虑挂载文件夹。我这里改为挂载文件夹。

    //这里是挂载单文件,有坑,宿主机改配置后容器中配置没有修改,后面是挂载目录方式
    root@Colin:~/web2# docker run --name web2 -d -p 80:80 --net host -v $(pwd)/config/html:/usr/share/nginx/html -v $(pwd)/config/conf/nginx.conf:/etc/nginx/nginx.conf -v $(pwd)/config/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v $(pwd)/config/logs:/var/log/nginx fansolomon/my-nginx
    
    //先将文件从web2 container(我之前运行的一个nginx容器)相关配置文件copy到本地机config目录下,html目录也是同理,还有需要新建logs目录
    root@Colin:~/web3# docker cp web2:/etc/nginx config
    
    //完成copy后目录如下
    root@Colin:~/web3/config# ls
    html  logs  nginx
    root@Colin:~/web3/config/nginx# ls
    conf  conf.d  fastcgi_params  koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params  uwsgi_params  win-utf
    
    //然后重新建立一个web3 container,将单文件挂载改为目录挂载!
    root@Colin:~/web3# docker run --name web3 -d -p 80:80 --net host -v $(pwd)/config/html:/usr/share/nginx/html -v $(pwd)/config/nginx:/etc/nginx -v $(pwd)/config/logs:/var/log/nginx fansolomon/my-nginx
    
    //再修改宿主机web3文件夹中的config中配置,可以看到容器中的配置跟着更新了,成功
    //进入/usr/sbin/后进行reload重新加载配置文件 可以看到修改已经生效
  • 相关阅读:
    ios中的几种多线程实现
    在mac下使用终端管理svn
    关于UIScrollViewDelegate协议中每个回调函数的意义及执行顺序的理解
    UIView 及其子类对象 抖动效果的实现
    ios、andriod、cocos2d 视图层次理解
    委托  通知中心   监听/观察
    iphone 中使用苹果禁用的私有Framework
    关于苹果官方网站Reachability检测网络的总结
    iOS设备的分辨率
    ios开发多线程、网络请求的理解 错误码的理解
  • 原文地址:https://www.cnblogs.com/ZYTZ/p/13047948.html
Copyright © 2011-2022 走看看