Docker (softver)

Docker je alat dizajniran tako da olakšava razvoj, implementaciju i pokretanje aplikacija koristeći kontejnere.[1] Softver koji sadrži kontejnere naziva se Docker Engine.[2] Prvi put se pojavio 2013. godine i razvija ga kompanija Docker, Inc.[3] Usluga ima besplatne i plaćene nivoe.

Docker
Originalni autor(i)Solomon Hykes
Centralna arhivagithub.com/moby/moby
Programski jezikGo
Operativni sistemLinux, Windows, macOS
Platformax86-64, ARM, s390x, ppc64le
VrstaVirtualizacija na nivou OS-a
Veb-sajtwww.docker.com

Kontejneri su izolovani jedan od drugog i pakuju sopstveni softver, biblioteke i konfiguracione fajlove; oni mogu međusobno komunicirati putem tačno definisanih kanala.[4] Svi kontejneri su upravljani kernelom operativnog sistema i stoga su lakši od virtualnih mašina. Kontejneri se stvaraju iz slika koje određuju njihov precizan sadržaj.[2]

Tehnologija uredi

 
Docker može koristiti različite interfejse za pristup virtualizacijskim mogućnostima Linux kernela.[5]

Docker se razvija prvenstveno za Linux, gdje koristi mogućnosti izolacije resursa Linux kernela kao što su cgroups i kernel namespaces, te datotečni sistem sposoban za union-mount kao što su OverlayFS i drugi [6] kako bi se omogućio pokretanje nezavisnih kontejnera unutar jedne Linux instance, npr. izbjegavajući opterećenje pokretanja i održavanja virtuelnih mašina (VM).[7] Na ovaj način se uglavnom[8] izolira pogled aplikacije na okruženje operativnog sistema. Od verzije 0.9, Docker uključuje libcontainer biblioteke kao svoj vlastiti način za direktno korištenje virtualizacijskih mogućnosti koje pruža Linux kernel, kao dodatak korištenju apstrakcijskih virtualizacijskih interfejsa kao što su libvirt, LXC i systemd-nspawn.[9][10][5]

Nadograđujući se na mogućnosti koje pruža Linux kernel (prvenstveno cgroups i namespaces), Docker kontejner, za razliku od virtualne mašine, ne zahtijeva ili uključuje poseban operativni sistem.[11] Umjesto toga, oslanja se na funkcionalnost kernela i koristi izolaciju resursa za CPU i memoriju,[12] i odvojene namespace kako bi izolirala pogled aplikacije na operativni sistem. Docker pristupa virtualizacijskim mogućnostima Linux kernela ili direktno koristeći libcontainer biblioteke, koja je dostupna od verzije Docker 0.9, ili indirektno preko libvirt , LXC (Linux kontejneri) ili systemd-nspawn.[5][13]

Zbog toga što Docket kontejeneri zauzimaju malo prostora, jedan server ili virtuelna mašina može istovremeno pokrenuti nekoliko kontejnera. Analiza iz 2016. otkrila je da tipičan slučaj upotrebe Docker-a uključuje pet kontejnera po serveru, ali da mnoge organizacije pokreću 10 ili više.[14]

Reference uredi

  1. ^ "What is Docker?". Opensource.com (jezik: engleski). Pristupljeno 29. 5. 2019.
  2. ^ a b "What is a Container?". docker.com. Docker, Inc. Pristupljeno 13. 5. 2019.
  3. ^ Vivek Ratan (February 8, 2017). "Docker: A Favourite in the DevOps World". Open Source For U. Retrieved June 14, 2017.
  4. ^ "Docker frequently asked questions (FAQ)". 2. 3. 2019.
  5. ^ a b c "Docker 0.9: Introducing execution drivers and libcontainer" Arhivirano 21. 2. 2015. na Wayback Machine. docker.com. March 10, 2014. Retrieved January 20, 2015.
  6. ^ "Select a storage driver documentation". Docker documentation. Archived from the original on December 6, 2016. Retrieved December 7, 2016.
  7. ^ "Docker Documentation: Kernel Requirements". docker.readthedocs.org. January 4, 2014. Archived from the original on August 21, 2014. Retrieved August 20, 2014.
  8. ^ Dan Walsh (September 15, 2014). "Yet Another Reason Containers Don't Contain: Kernel Keyrings" Arhivirano 13. 4. 2015. na Wayback Machine. projectatomic.io. Retrieved April 13, 2015.
  9. ^ Steven J. Vaughan-Nichols (June 11, 2014). "Docker libcontainer unifies Linux container powers". ZDNet. Retrieved July 30, 2014.
  10. ^ "libcontainer – reference implementation for containers". github.com. Retrieved July 30, 2014.
  11. ^ Noyes, Katherine (August 1, 2013). "Docker: A 'Shipping Container' for Linux Code" Arhivirano 8. 8. 2013. na Wayback Machine. Linux.com. Retrieved August 9, 2013.
  12. ^ "Limit a container's resources". Docker Documentation. Retrieved March 7, 2018.
  13. ^ Swan, Chris (March 13, 2014). "Docker drops LXC as default execution environment". InfoQ. Retrieved January 20, 2015.
  14. ^ "8 surprising facts about real Docker adoption". Datadog. June 2016. Retrieved November 14, 2016.

Vanjski linkovi uredi