美文网首页
CentOS7上修改Docker Storage Driver

CentOS7上修改Docker Storage Driver

作者: questionuncle | 来源:发表于2018-04-09 13:54 被阅读0次

    作者在Docker笔记(持续更新)提到在CentOS7上安装Docker时会有告警,作者觉得很有必要单开一篇文章单独将(希望让其他小伙伴能够通过标题搜到这篇文章,减少弯路)。
    通过docker info查看本机docker的基本信息,你可能看到如下告警:

    image.png
    image.png

    问题的根源就是Docker安装在CentOS上的挂载位置磁盘参数ftype为0,不为1,导致在安装Docker时,Docker会根据当前挂载位置的磁盘参数动态选择Docker的Storage Driver,这样有可能是Docker最不推荐的devicemapper+loopback模式,亦或是overlay模式,但是使用时可能存在问题。

    如何解决

    作者在上文中Docker笔记(持续更新)提到解决办法,但是实践却不成功,其原因就是如果卸载"/"对应的挂载点,系统命令就不能用了。原因也很简单,因为centos-root挂载点下包含了系统大部分命令,所以这个方法也不成功。如何解决,只有重新拿一个文件系统进行格式化,并挂载到对应目录,同时将Docker的相关目录修改为该目录下,过程如下:

    image.png
    可以看到这里除了/dev/mapper/centos-root 文件系统以外还有/dev/mapper/centos-home 文件系统,可以把它进行卸载——格式化——挂载
    umount /dev/mapper/centos-home  //device的路径可以在xfs_info中找到
    //如果提示device is busy
    umount -l /dev/mapper/centos-home //强制卸载同时要重启
    mkfs.xfs -n ftype=1 /dev/mapper/centos-home  //重新格式化device,在此
    mount /dev/mapper/centos-home /home   //重新挂载
    xfs_info /home    //查看结果
    
    image.png

    经过上述操作后,可以看到该文件系统的ftype类型已为1。
    接下来就是修改Docker的service,设置其数据目录、启动目录及存储类型等,并让其启动时能够自动加载。

    cat /etc/docker/daemon.json 
    {
    "storage-driver":"overlay2",
    "data-root":"/home/docker/lib",
    "exec-root":"/home/docker/run"
    }
    systemctl daemon-reload
    systemctl restart docker
    
    image.png

    相关文章

      网友评论

          本文标题:CentOS7上修改Docker Storage Driver

          本文链接:https://www.haomeiwen.com/subject/oqqihftx.html