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重新加载配置文件 可以看到修改已经生效
  • 相关阅读:
    xss框架(一)之浏览器通信
    Joomla未授权创建特权用户漏洞和getshell脚本解析
    从零开始写网站登录爆破(一)
    CSRF学习整理
    vue中vue2-google-maps使用谷歌地图的基础操作
    vue中百度地图API的调用
    60秒定时减少
    git操作指令,以及常规git代码操作
    taro taroUi的H5打包后路径/修改为./
    vue enter事件无效,加入native
  • 原文地址:https://www.cnblogs.com/ZYTZ/p/13047948.html
Copyright © 2011-2022 走看看