Descrizione di Project Atomic di Docker storage backends descrive le differenze tecniche tra AUFS e altre opzioni di back-end di archiviazione, come ad esempio devicemapper. AUFS non è nel kernel Linux upstream. Perché AUFS è scelto come back-end di archiviazione predefinito (ad esempio in Docker di Ubuntu)? Ci sono alcune proprietà tecniche di AUFS che lo rendono una scelta migliore rispetto a un back-end di storage come ad esempio il devicemapper che sembra essere supportato da un kernel Linux senza patch?Perché utilizzare AUFS come backend di archiviazione Docker predefinito invece di devicemapper?
risposta
AUFS è solo il back-end di memorizzazione predefinito su sistemi/distribuzioni che lo hanno disponibile. Altrimenti, devicemapper è l'impostazione predefinita. Ubuntu 14.04, ad esempio, il valore predefinito è 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
questo è cambiato in Docker 0.7.0. Prima di 0.7.0, Docker faceva affidamento su AUFS come unico driver di archiviazione, motivo per cui era il default nelle versioni precedenti di Ubuntu.
Sono lontano da un esperto di filesystem, ma la gente al Discourse, che sono, strongly recommend using AUFS, and not DeviceMapper. L'uso di DeviceMapper può portare a "un mondo di dolore".
Ho difficoltà con il codice di uscita 159 della docker di recente, il che significa che una sorta di limitazione delle dimensioni del file supera. Finalmente ho scoperto che è causato dal device mapper, quindi ho reinstallato la finestra mobile e cambiato per usare il driver overlay. – Jianyu
Il Docker documentation dice:
Il driver aufs è la più antica, ma si basa su un kernel patch-set di Linux che è improbabile che venga fusa nel kernel principale. Questi sono anche noti per causare alcuni gravi crash del kernel.
ho avuto quei crash del kernel con Docker 17.06.2 ~ ce-0 ~ ubuntu su Ubuntu 16.04 con il kernel di default.
Sto usando overlay2
sul file system ext4; Docker ora funziona correttamente.
- 1. Modifica Docker/var/lib/docker/aufs/diff location
- 2. Perché utilizzare ROLAP invece di MySQL semplice?
- 3. Come posso configurare il motore di backend predefinito di openssl?
- 4. Perché dovresti utilizzare l'oggetto di archiviazione ViewState di asp.net sull'oggetto di archiviazione Session?
- 5. Modifica backend di archiviazione Zend_Auth $ _SESSION to Memcached
- 6. Come impostare l'account di archiviazione predefinito per Azure RM Subscription
- 7. Perché rimuovere contenitori e immagini docker non libera lo spazio di archiviazione su Windows? Come sistemarlo?
- 8. Come abilitare AUFS su Debian?
- 9. Come utilizzare il tokenizer predefinito di NLTK per ottenere span invece di stringhe?
- 10. Come utilizzare Maven JDK1.8 invece di JDK1.6
- 11. Come impostare cairo come backend predefinito per x11() in R?
- 12. Perché utilizzare Redis invece di MongoDb per Caching?
- 13. perché utilizzare 'html, body' per scrollTop invece di 'html'
- 14. Perché utilizzare 'indirizzo funzione == NULL' invece di 'falso'?
- 15. Perché utilizzare lambdas in ASP.NET MVC invece di riflettere?
- 16. Come modificare il tipo di motore di archiviazione su MySQL?
- 17. Perché preferiamo utilizzare $ q in angolare, invece di $ http
- 18. JasperReports: valore predefinito invece di 'null'
- 19. Come utilizzare getnameinfo invece di gethostbyname?
- 20. Come utilizzare arricciare GET invece di POST
- 21. Come utilizzare View.OnTouchListener invece di onClick
- 22. Perché utilizzare la statizzazione dell'interruttore invece di eventuali altre istruzioni?
- 23. Perché utilizzare helper CakePhp AJAX invece di jQuery?
- 24. Perché è preferibile utilizzare elenchi invece di matrici in Java?
- 25. Perché utilizzare First invece di FirstOrDefault in LINQ?
- 26. Perché il "docker login" non funziona nel Docker Quickstart Terminal ma funziona dal computer predefinito?
- 27. Come utilizzare lo stile di notifica predefinito?
- 28. Come utilizzare il servizio di archiviazione BLOB da ios?
- 29. perché varbinary invece di varchar
- 30. Perché darcs invece di git?
Interessante che anche Ubuntu 14.04 sia impostato su Devicemapper. Tuttavia, il link dice: "Se il tuo sistema supporta AUFS, continuerà a utilizzare il driver AUFS". Che ne è di AUFS che Docker preferisce su Devicemapper, se disponibile? –
Solo che se un sistema ha un supporto con docker prima di 0.7, vorrebbe comunque che le loro immagini funzionino. Se il driver di archiviazione ha cambiato le immagini sarebbe incompatibile, rompendo così quei sistemi. Non ci sono vantaggi tecnici per noi informazioni su device mapper. –
Abbiamo problemi di prestazioni su AWS con devicemapper (istanza m3.medium, disco EBS montato su/var/lib/directory docker). Con btrfs/etx4 filesystem e devicemapper abbiamo tempi di costruzione di circa 20 minuti. Con btrfs filesystem e btrfs devicemapper riduciamo i tempi di costruzione a 12 minuti. Con ext4 filesystem e aufs devicemapper ci vogliono circa 6 minuti. Quindi, ci sono differenze con i livelli di prestazioni sull'infrastruttura AWS almeno. – msgre