Docker (software) - Docker (software)
![]() | |
Původní autoři | Solomon Hykes |
---|---|
Vývojáři | Docker, Inc. |
První vydání | 20. března 2013[1] |
Stabilní uvolnění | 19.03.14 / 1. prosince 2020[2] |
Úložiště | ![]() |
Napsáno | Jít[3] |
Operační systém | Linux, Okna, Operační Systém Mac[A] |
Plošina | x86-64, PAŽE, s390x, ppc64le |
Typ | Virtualizace na úrovni OS |
Licence |
|
webová stránka | docker.com |
Přístavní dělník je sada platforma jako služba (PaaS) produkty, které používají Virtualizace na úrovni OS dodávat software v balíčcích zvaných kontejnery.[6] Kontejnery jsou navzájem izolované a sdružují vlastní software, knihovny a konfigurační soubory; mohou spolu komunikovat přes dobře definované kanály.[7] Všechny kontejnery provozuje jeden jádro operačního systému a proto použít méně zdrojů než virtuální stroje.[8]
Služba má bezplatné i prémiové úrovně. Volá se software, který je hostitelem kontejnerů Docker Engine.[8] Poprvé byl zahájen v roce 2013 a je vyvinut společností Docker, Inc.[9]
Dějiny
Docker Inc. založili Solomon Hykes a Sebastien Pahl v průběhu Y Kombinátor Zahájení inkubátoru v létě 2010 a spuštění v roce 2011.[10] Hykes zahájil projekt Docker ve Francii jako interní projekt v rámci dotCloud, a platforma jako služba společnost.[11]
Docker debutoval na veřejnosti v Santa Claře v PyCon v roce 2013.[12] Bylo vydáno jako open-source v březnu 2013.[13] V té době to používalo LXC jako výchozí prostředí pro provádění. O rok později, s vydáním verze 0.9, Docker nahradil LXC vlastní komponentou, která byla napsána v Jít programovací jazyk.[14][15]
V roce 2017 vytvořil Docker projekt Moby pro otevřený výzkum a vývoj.[16]
Přijetí
- 19. září 2013: červená čepice a Docker ohlásil spolupráci kolem Fedora, Red Hat Enterprise Linux (RHEL) a OpenShift.[17]
- 15. října 2014: Microsoft oznámila integraci Docker enginu do Windows Server, stejně jako nativní podpora role klienta Docker ve Windows.[18][19]
- Listopad 2014: Byly oznámeny kontejnerové služby Docker pro Amazon Elastic Compute Cloud (EC2).[20]
- 10. listopadu 2014: Docker oznámil partnerství s Stratoscale.[21]
- 4. prosince 2014: IBM oznámila strategické partnerství se společností Docker, které společnosti Docker umožňuje užší integraci s IBM Cloud.[22]
- 22. června 2015: Docker a několik dalších společností oznámily, že pracují na novém dodavateli a standardu nezávislém na operačním systému pro softwarové kontejnery.[23][24]
- Duben 2016: Windocks, nezávislý ISV, vydal port projektu Dockeru s otevřeným zdrojovým kódem pro Windows, podporující Windows Server 2012 R2 a Server 2016, se všemi verzemi SQL Server 2008 a dále.[25]
- Květen 2016: analýza ukázala, že následující organizace jsou hlavními přispěvateli do Dockeru: Tým Dockeru, Cisco, Google, Huawei, IBM, Microsoft, a červená čepice.[26]
- 8. června 2016: Microsoft oznámil, že Docker lze nyní nativně používat Windows 10.[27]
- Leden 2017: Analýza LinkedIn zmínky v profilu ukázaly, že přítomnost Dockeru vzrostla v roce 2016 o 160%.[28]
- 6. května 2019: Microsoft oznámil druhou verzi systému Subsystém Windows pro Linux (WSL). Společnost Docker, Inc. oznámila, že začala pracovat na verzi Dockeru pro Windows, která běží na WSL 2.[29] To zejména znamená, že Docker může běžet na Windows 10 Home (dříve byl omezen na Windows Pro a Enterprise, protože používal Hyper-V).
- Srpen 2020: Microsoft oznámil backport WSL2 na Windows 10 verze 1903 a 1909 (dříve WSL2 byl k dispozici pouze ve verzi 2004)[30] a vývojáři Dockeru oznámili dostupnost Dockeru pro tyto platformy.[31]
Úkon

Docker může zabalit aplikaci a její závislosti do virtuálního kontejneru, který lze spustit v jakémkoli počítači se systémem Linux, Windows nebo macOS. To umožňuje aplikaci spouštět na různých místech, například místní, v veřejný cloud, a / nebo v a soukromý cloud.[33] Při spuštění v systému Linux používá Docker funkce izolace prostředků systému Linuxové jádro (jako skupiny a jádro jmenné prostory ) a a unijní souborový systém (jako OverlayFS )[34] umožnit provozování kontejnerů v rámci jedné instance Linuxu, vyhnout se režii spouštění a údržby virtuální stroje.[35]
Vzhledem k tomu, že kontejnery Docker jsou lehké, může jeden server nebo virtuální stroj spouštět několik kontejnerů současně.[36] Analýza z roku 2018 zjistila, že typický případ použití Dockeru zahrnuje spuštění osmi kontejnerů na hostitele a že čtvrtina analyzovaných organizací provozuje 18 nebo více na hostitele.[37]
Linuxové jádro většinou podporuje jmenné prostory[38] izoluje pohled aplikace na operační prostředí, včetně procesních stromů, sítě, ID uživatelů a připojených souborových systémů, zatímco skupiny jádra poskytují omezení zdrojů pro paměť a CPU.[39] Od verze 0.9 obsahuje Docker vlastní komponentu (nazvanou „libcontainer") k přímému používání virtualizačních zařízení poskytovaných jádrem Linuxu, kromě použití abstraktních virtualizačních rozhraní prostřednictvím libvirt, LXC a systemd-nspawn.[14][32][33][40]
Docker implementuje vysokou úroveň API poskytnout lehké kontejnery, které běží procesy izolovaně.[13]
Součásti
Nabídka softwaru Docker jako služba se skládá ze tří komponent:
- Software: Docker démon, volala
dockerd
, je trvalý proces, který spravuje kontejnery Dockeru a zpracovává objekty kontejnerů. Démon naslouchá žádostem odeslaným prostřednictvím API Docker Engine.[41][42] Klientský program Docker, tzvpřístavní dělník
, poskytuje rozhraní příkazového řádku který umožňuje uživatelům komunikovat s démony Dockeru.[41][43] - Objekty: Objekty Dockeru jsou různé entity používané k sestavení aplikace v Dockeru. Hlavní třídy Docker objektů jsou obrázky, kontejnery a služby.[41]
- Kontejner Docker je standardizované zapouzdřené prostředí, které spouští aplikace.[44] Kontejner je spravován pomocí Docker API nebo CLI.[41]
- Image Dockeru je šablona jen pro čtení, která se používá k vytváření kontejnerů. Obrázky se používají k ukládání a odesílání aplikací.[41]
- Služba Docker umožňuje škálování kontejnerů napříč několika démony Dockeru. Výsledek je znám jako a roj, sada spolupracujících démonů, kteří komunikují prostřednictvím Docker API.[41]
- Registry: Registr Dockeru je úložištěm pro obrázky Dockeru. Klienti Dockeru se připojují k registrům a stahují („stahují“) obrázky pro použití nebo nahrávají („push“) obrázky, které si vytvořili. Registry mohou být veřejné nebo soukromé. Dva hlavní veřejné registry jsou Docker Hub a Docker Cloud. Docker Hub je výchozí registr, kde Docker hledá obrázky.[41][45] Docker registry také umožňují vytváření oznámení na základě událostí.[46]
Nástroje
- Docker Compose je nástroj pro definování a spouštění aplikací Docker s více kontejnery.[47] Využívá to YAML soubory ke konfiguraci služeb aplikace a provede proces vytvoření a spuštění všech kontejnerů pomocí jediného příkazu. The
docker-compose
Nástroj CLI umožňuje uživatelům spouštět příkazy na více kontejnerech najednou, například vytvářet obrázky, škálování kontejnery, běžící kontejnery, které byly zastaveny, a další.[48] Příkazy související s manipulací s obrázky nebo možnostmi interaktivního s uživatelem nejsou v Docker Compose relevantní, protože adresují jeden kontejner.[49] The docker-compose.yml Soubor se používá k definování služeb aplikace a obsahuje různé možnosti konfigurace. Napříkladstavět
Možnost definuje možnosti konfigurace, jako je cesta Dockerfile,příkaz
Tato možnost umožňuje přepsat výchozí příkazy Dockeru a další.[50] První veřejná beta verze Docker Compose (verze 0.0.1) byla vydána 21. prosince 2013.[51] První verze připravená k výrobě (1.0) byla zpřístupněna 16. října 2014.[52]
- Docker Swarm poskytuje nativní shlukování funkce pro Docker kontejnery, které přeměňují skupinu Dockerových strojů na jeden virtuální Dockerův stroj.[53] V Dockeru 1.12 a vyšším je režim roje integrován s Docker Engine.[54] The
docker roj
CLI[55] obslužný program umožňuje uživatelům spouštět kontejnery Swarm, vytvářet tokeny zjišťování, vypisovat uzly v klastru atd.[56] Thedokovací uzel
Nástroj CLI umožňuje uživatelům spouštět různé příkazy pro správu uzlů v roji, například seznam uzlů v roji, aktualizace uzlů a odstraňování uzlů z roje.[57] Docker spravuje roje pomocí Vor shoda algoritmus. Podle Raftu, aby mohla být provedena aktualizace, musí většina uzlů Swarm souhlasit s aktualizací.[58][59]
Viz také
- DevOps
- Řetězec nástrojů DevOps
- Mikroslužby
- Virtualizace na úrovni OS
- Architektura komponent služby
- gVisor
- Seznam kontejnerů Linux
- Kubernetes
Poznámky
- ^ Docker dál Operační Systém Mac používá Linux virtuální stroj spustit kontejnery.[4]
Reference
- ^ Barbier, Julien (9. června 2014). „Je to tady: Docker 1.0“. Přístavní dělník. Docker, Inc.. Citováno 30. září 2019.
- ^ „Vydání - docker / docker-ce“. docker / docker-ce repo. Docker, Inc.. Citováno 2. prosince 2020 - přes GitHub.
- ^ „Docker source code“. docker / distribuční repo. Docker, Inc. 12. října 2015. Citováno 24. říjen 2015 - přes GitHub.
- ^ „Začínáme s Dockerem pro Mac“. docker.com. Docker, Inc.. Citováno 27. září 2018.
- ^ Friis, Michael (2. března 2017). „Announcing Docker Enterprise Edition“. Blog Dockeru. Docker, Inc.. Citováno 2. března 2017.
- ^ O'Gara, Maureen (26. července 2013). „Ben Golub, který prodal Glustera společnosti Red Hat, nyní běží dotCloud“. Média SYS-CON. Archivovány od originál 13. září 2019.
- ^ „Docker frequently asked questions (FAQ)“. 2. března 2019.
- ^ A b „Co je to kontejner?“. docker.com. Docker, Inc. Citováno 13. května 2019.
- ^ Ratan, Vivek (8. února 2017). „Docker: Oblíbený ve světě DevOps“. Otevřený zdroj pro U. Citováno 14. června 2017.
- ^ „O platformě dotCloud“. dotCloud. Archivovány od originál 2. července 2014. Citováno 23. června 2019.
- ^ „Jeden domov pro všechny vaše aplikace“. dotcloud.com. Archivovány od originál dne 17. května 2014. Citováno 8. května 2014.
- ^ „Budoucnost kontejnerů s Linuxem“. Kanál DotCloud. Citováno 13. července 2018 - přes Youtube.
- ^ A b Avram, Abel (27. března 2013). „Docker: Automatizované a konzistentní nasazení softwaru“. InfoQ. Citováno 9. srpna 2013.
- ^ A b Vaughan-Nichols, Steven J. (11. června 2014). „Docker libcontainer sjednocuje možnosti kontejneru Linux“. ZDNet. Citováno 30. července 2014.
- ^ Swan, Chris (13. března 2014). „Docker upustí LXC jako výchozí prostředí pro provádění“. InfoQ. Citováno 20. ledna 2015.
- ^ https://collabnix.com/demystifying-the-relationship-b Between-moby-docker/
- ^ „DotCloud otáčí a vyhrává s Dockerem, cloudová služba je nyní součástí Red Hat OpenShift“. TechCrunch. 19. září 2013. Citováno 20. ledna 2014.
- ^ Foley, Mary Jo (15. října 2014). „Podpora kontejnerů Docker přichází do příštího vydání Windows Serveru od Microsoftu“. ZDNet. Citováno 16. října 2014.
- ^ Guthrie, Scott (15. října 2014). „Docker and Microsoft: Integrating Docker with Windows Server and Microsoft Azure“. Blog společnosti ScottGu. Microsoft. Citováno 12. ledna 2015.
- ^ Barr, Jeff (13. listopadu 2014). „Amazon EC2 Container Service (ECS) - Container Management for the AWS Cloud“. Blog webových služeb Amazon. Citováno 29. dubna 2017.
- ^ Rath, John (10. listopadu 2014). „Stratoscale získává 32 milionů $ na vybudování cloudů OpenStack podporujících Docker na komoditních serverech“. Citováno 3. ledna 2016.
- ^ „IBM a Docker ohlašují strategické partnerství pro poskytování podnikových aplikací v cloudu a na prem“. IBM. 4. prosince 2014. Citováno 20. dubna 2015.
- ^ Lardinois, Frederic (22. června 2015). „Docker, CoreOS, Google, Microsoft, Amazon a další společně vyvíjejí společný standard kontejnerů“. TechCrunch. Citováno 8. srpna 2015.
- ^ Siluk, Shirley (22. června 2015). „Docker, Tech Giants Team na projektu Open Container Project“. cio-today.com. Citováno 8. srpna 2015.
- ^ Yegulalp, Serdar (4. dubna 2016). „Windocks dělá to, co Docker a Microsoft neumí“. InfoWorld. Citováno 27. říjen 2018.
- ^ „Docker - aktualizovaná statistika projektu“. GitHub Gist. Citováno 22. srpna 2016.
- ^ Sarkar, Dona (8. června 2016). „Oznamování sestavení náhledu Windows 10 Insider 14361“. Blogy Windows. Microsoft. Citováno 19. června 2016.
- ^ Mullany, Michael. „Docker Momentum Analysis 2016“. LinkedIn Pulse. Citováno 5. ledna 2017.
- ^ Vaughan-Nichols, Steven (18. června 2019). „Docker zahrnuje Windows Subsystém pro Linux 2“. ZDNet. CBS Interactive.
- ^ „Podpora WSL 2 přichází na Windows 10 verze 1903 a 1909“. Příkazový řádek Windows. 20. srpna 2020. Citováno 21. srpna 2020.
- ^ „Docker Desktop & WSL 2 - Backport Update“. Blog Dockeru. 20. srpna 2020. Citováno 21. srpna 2020.
- ^ A b „Docker 0.9: Představujeme spouštěcí ovladače a libcontainer“. Blog Dockeru. Docker, Inc. 10. března 2014. Citováno 20. ledna 2015.
- ^ A b Noyes, Katherine (1. srpna 2013). „Docker:„ Přepravní kontejner “pro kód Linux“. Linux.com. Archivovány od originál 8. srpna 2013. Citováno 9. srpna 2013.
- ^ „Vyberte dokumentaci ovladače úložiště“. Docker dokumentace. Archivovány od originál 6. prosince 2016. Citováno 7. prosince 2016.
- ^ „Dokumentace Dockeru: Požadavky na jádro“. docker.readthedocs.org. 4. ledna 2014. Archivovány od originál 21. srpna 2014. Citováno 20. srpna 2014.
- ^ K., Chris (14. ledna 2019). „Lehké kontejnery Windows: Použití izolace procesů Docker ve Windows 10“ (html). Pokročilý uživatel. Citováno 2. srpna 2019.
„lehčí“ skutečné kontejnery (prostřednictvím takzvané izolace procesů), kde kontejnerizované procesy běží přímo v hostitelském systému - všechny procesy v hostiteli a v kontejnerech sdílejí stejné jádro Windows. To je podobné tomu, jak fungují kontejnery v Linuxu.
- ^ „8 překvapivých faktů o skutečném přijetí Dockeru“. Datadog. Červen 2018. Citováno 4. září 2019.
- ^ Walsh, Dan (15. září 2014). „Kontejnery z jiného důvodu neobsahují: Klíčenky s jádrem“. projectatomic.io. Citováno 13. dubna 2015.
- ^ „Omezit zdroje kontejneru“. Dokumentace Dockeru. Citováno 7. března 2018.
- ^ "libcontainer - referenční implementace pro kontejnery". repo docker / libcontainer. Docker, Inc.. Citováno 30. července 2014 - přes GitHub ].
- ^ A b C d E F G "Přehled Dockeru". Dokumentace Dockeru. Docker, Inc.. Citováno 26. února 2018.
- ^ "dockerd". Dokumentace Dockeru. Docker, Inc.. Citováno 26. února 2018.
- ^ „Use Docker command line“. Dokumentace Dockeru. Docker, Inc.. Citováno 26. února 2018.
- ^ „The Docker Ecosystem: An Introduction to Common Components“. www.digitalocean.com. Citováno 26. února 2018.
- ^ „O registru“. Dokumentace Dockeru. Docker, Inc.. Citováno 26. února 2018.
- ^ „Práce s oznámeními“. 2. března 2019.
- ^ "Přehled Docker Compose". Dokumentace Dockeru. Docker, Inc.. Citováno 6. července 2017.
- ^ "Vytvořit odkaz na příkazový řádek". Dokumentace Dockeru. Docker, Inc.. Citováno 28. února 2018.
- ^ „Zorganizujte kontejnery pro vývoj pomocí Docker Compose“. přes @codeship. 27. května 2015. Citováno 28. února 2018.
- ^ „Vytvořit odkaz na verzi souboru 3“. Dokumentace Dockeru. Docker, Inc.. Citováno 28. února 2018.
- ^ Firshman, Ben (21. prosince 2013). „Vydání 0.0.1“. ukotvitelný panel / skládat. Docker, Inc. - přes GitHub.
- ^ Prasad, Aanand (16. října 2014). „Verze 1.0.0“. ukotvitelný panel / skládat. Docker, Inc. - přes GitHub.
- ^ „8 nástrojů pro orchestraci kontejnerů, které je třeba znát“. Linux.com. 12. dubna 2017. Citováno 6. července 2017.
- ^ „Docker Swarm“. Dokumentace Dockeru. Docker, Inc.. Citováno 6. července 2017.
- ^ https://docs.docker.com/engine/reference/commandline/swarm/
- ^ "Odkaz na příkazový řádek v roji". Dokumentace Dockeru. Docker, Inc.. Citováno 28. února 2018.
- ^ "ukotvitelný uzel". Dokumentace Dockeru. Citováno 28. února 2018.
- ^ „Docker Swarm 101“. aquasec.com. Citováno 28. února 2018.
- ^ „Raft Consensus Algorithm“. raft.github.io. Citováno 28. února 2018.