Project Atomic對Docker storage backends的描述描述了AUFS和其他存儲後端選擇(如devicemapper)之間的技術差異。 AUFS不在上游Linux內核中。爲什麼選擇AUFS作爲默認存儲後端(例如在Ubuntu的Docker中)? AUFS的某些技術特性是否使它成爲一個比未裝補丁的Linux內核支持的存儲後端(如devicemapper)更好的選擇?爲什麼使用AUFS作爲默認的Docker存儲後端而不是devicemapper?
27
A
回答
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的默認設置。
7
我遠離文件系統的專家,但是Discourse的人,他們是strongly recommend using AUFS, and not DeviceMapper。使用DeviceMapper可能導致「一個痛苦的世界」。
+0
我最近在碼頭退出碼159上掙扎,這意味着某種文件大小限制超過了。最後我發現它是由設備映射器引起的,所以必須重新安裝docker並更改爲使用overlay驅動程序。 – Jianyu
0
的AUFS司機是最古老的,而是基於Linux內核補丁集是不太可能被合併到主內核中。這些也會導致一些嚴重的內核崩潰。
在Ubuntu 16.04上,我用默認的內核在Docker 17.06.2〜ce-0〜ubuntu上發生了內核崩潰。
我在ext4文件系統上使用overlay2
; Docker現在可以正常工作。
相關問題
- 1. 使用2.7GB的Docker/var/lib/docker/devicemapper/devicemapper
- 2. 爲什麼不是默認
- 3. 爲什麼Android Studio,Intellij使用JVM Server而不是Client作爲默認
- 4. 爲什麼sbt默認使用Ivy,而不是Maven?
- 5. 爲什麼android studio默認使用Gradle 2.14.1而不是最新?
- 6. docker aufs到devicemapper碼頭容器和圖像遷移
- 7. 運行docker pull時docker使用的默認url是什麼?
- 8. Java爲什麼默認的java版本是1.7,而不是1.8
- 9. 爲什麼默認發佈的所有端口都使用此Docker鏡像
- 10. 爲什麼默認值不使用Django
- 11. 爲什麼PyCrypto不使用默認IV?
- 12. docker中的默認WORKDIR是什麼?
- 13. 爲什麼我不能使用String.Empty作爲默認參數值?
- 14. 什麼是leiningen默認存儲庫?
- 15. 爲什麼在存儲密碼時使用鹽而不是AES
- 16. MySQL:爲什麼默認的NULL而不是空的?
- 17. 爲什麼UIBarButtonItem默認是禁用的?
- 18. 使用@import ......作爲默認的#進口,而不是<...>
- 19. 爲什麼close_on_exec不是默認配置?
- 20. 爲什麼AllowPartiallyTrustedCallers不是默認值?
- 21. 爲什麼PostgreSQL「SequenceGenerator」,而不是「IdentityGenerator」的Hibernate默認生成器?
- 22. 爲什麼OpenJPA默認不存儲外鍵?
- 23. 默認值來自xml偏好文件不存儲 - 爲什麼?
- 24. 爲什麼在Docker快速入門終端中「docker登錄」失敗,但是在默認機器中工作?
- 25. SBT使用的默認存儲庫是什麼?
- 26. 配置EF6使用varchar作爲默認值而不是nvarchar?
- 27. Swing爲什麼默認'Graphics'而不是'Graphics2D'?
- 28. Zend_Auth使用Zend_Session而不是默認存儲?
- 29. 爲什麼PHP + MySQL默認不使用文件緩存?
- 30. 爲什麼LinkedList作爲HashMap的存儲桶實現而不是另一個Hashmap?
有趣的是,Ubuntu 14.04也默認爲devicemapper。但是,該鏈接說:「如果您的系統支持AUFS,它將繼續使用AUFS驅動程序」。如果可用,AUFS如何讓Docker更喜歡使用devicemapper? –
只是如果一個系統在0.7之前有Docker的aufs支持,他們仍然會希望他們的圖像能夠正常工作。如果存儲驅動程序更改映像將不兼容,從而打破這些系統。我們沒有技術上的好處,可以通過設備映射器瞭解aufs。 –
我們在AWS上使用devicemapper(m3.medium實例,EBS磁盤掛載到/ var/lib/docker目錄)存在性能問題。使用btrfs/etx4文件系統和devicemapper,我們的編譯時間大約爲20分鐘。有了btrfs文件系統和btrfs devicemapper,我們可以將構建時間縮短到12分鐘。使用ext4文件系統和aufs devicemapper大約需要6分鐘。因此,至少在AWS基礎架構上存在不同的性能級別。 – msgre