解決docker WARNING: Usage of loopback devices is strongly discouraged for production use的正確姿勢
阿新 • • 發佈:2019-01-11
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、