2014-07-15 25 views

回答

14

AUFS只是系統/分發版的默認存儲後端。否則,devicemapper是默認設置。 Ubuntu的14.04,例如,默認爲devicemapper:

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=14.04 
DISTRIB_CODENAME=trusty 
DISTRIB_DESCRIPTION="Ubuntu 14.04 LTS" 
$ docker info | grep Storage 
Storage Driver: devicemapper 

這改變了Docker 0.7.0。在0.7.0之前,Docker依靠AUFS作爲其唯一的存儲驅動程序,這就是爲什麼它是早期版本Ubuntu的默認設置。

+1

有趣的是,Ubuntu 14.04也默認爲devicemapper。但是,該鏈接說:「如果您的系統支持AUFS,它將繼續使用AUFS驅動程序」。如果可用,AUFS如何讓Docker更喜歡使用devicemapper? –

+0

只是如果一個系統在0.7之前有Docker的aufs支持,他們仍然會希望他們的圖像能夠正常工作。如果存儲驅動程序更改映像將不兼容,從而打破這些系統。我們沒有技術上的好處,可以通過設備映射器瞭解aufs。 –

+4

我們在AWS上使用devicemapper(m3.medium實例,EBS磁盤掛載到/ var/lib/docker目錄)存在性能問題。使用btrfs/etx4文件系統和devicemapper,我們的編譯時間大約爲20分鐘。有了btrfs文件系統和btrfs devicemapper,我們可以將構建時間縮短到12分鐘。使用ext4文件系統和aufs devicemapper大約需要6分鐘。因此,至少在AWS基礎架構上存在不同的性能級別。 – msgre

7

我遠離文件系統的專家,但是Discourse的人,他們是strongly recommend using AUFS, and not DeviceMapper。使用DeviceMapper可能導致「一個痛苦的世界」。

Why using DeviceMapper for Discourse sucks

+0

我最近在碼頭退出碼159上掙扎,這意味着某種文件大小限制超過了。最後我發現它是由設備映射器引起的,所以必須重新安裝docker並更改爲使用overlay驅動程序。 – Jianyu

0

Docker documentation說:

的AUFS司機是最古老的,而是基於Linux內核補丁集是不太可能被合併到主內核中。這些也會導致一些嚴重的內核崩潰。

在Ubuntu 16.04上,我用默認的內核在Docker 17.06.2〜ce-0〜ubuntu上發生了內核崩潰。

我在ext4文件系統上使用overlay2; Docker現在可以正常工作。

相關問題