zoukankan      html  css  js  c++  java
  • 解决docker WARNING: Usage of loopback devices is strongly discouraged for production use的正确姿势

             centos的系统,安装docker后,如果没有修改一些设置,启动docker daemon后,如果在xfs 或者ext4的文件系统上,命令行输入docker info命令下,常会看到如下一条警告信息

              大意是用loopback的方式运行docker是强烈不建议的,后面也告诉了解决这个警告的办法,网上搜索的一些解决办法,大意也是docker daemon启动参数加入  DOCKER_STORAGE_OPTIONS="--storage-opt dm.no_warn_on_loop_devices=true"来规避警告。而实际这样无异于掩耳盗铃,从加入的参数的意思也能看出如此。事实上,根本的解决办法,要从docker 的不同的存储驱动说起。

           目前docker支持的存储驱动类型,有aufs,Device mapper,btrfs,overlayfs和zfs,所有驱动都用到写时复制(CoW)的技术。而出现警告的原因,就是在centos系统上(默认不支持aufs),docker daemon启动时,找到的后端存储驱动只有device mapper类型,就会通过loopback的方式,创造100G的sparse文件,并将其作为device mapper的存储池,而所有容器都从该存储池中分配默认10G的存储空间使用(可以理解为通过dd命令创造一个稀疏文件,再把这个稀疏的文件当做块设备通过loopback挂载出来)。而loopback的方式,性能和稳定性都不是很好,所以才出现上述警告。因此解决的办法,也在使用device mapper存储时,避免使用loopback即可。     

    在docker daemon启动时,加入--storage-opt dm.datadev=/dev/xxxx    --storage-opt dm.metadatadev=/dev/xxx   ,为device mapper的元数据存储和docker的镜像数据存储选择独立的块设备即可,lvm或者独立磁盘分区都可以。
            
    
    
    参考:
            1、

    Docker五种存储驱动原理及应用场景和性能测试对比  http://dockone.io/article/1513?utm_source=tuicool&utm_medium=referral


  • 相关阅读:
    一览js模块化:从CommonJS到ES6
    JavaScript自定义事件
    BTrace:线上问题排查工具
    【转载】JVM 学习——垃圾收集器与内存分配策略
    简单GC具体操作参数查看
    CMS垃圾回收机制
    Lombok 在继承类上面的注意
    Intellij IDEA 修改默认配置
    缓存算法(FIFO 、LRU、LFU三种算法的区别)
    MySQL 变量类型
  • 原文地址:https://www.cnblogs.com/360linux/p/13062110.html
Copyright © 2011-2022 走看看