Kasutaja:Kraanivesi/Docker: erinevus redaktsioonide vahel

Eemaldatud sisu Lisatud sisu
HPook (arutelu | kaastöö)
Resümee puudub
Täiendasin viiteid
2. rida:
{{Tarkvara|nimi=Docker|autor=Solomon Hykes|veebileht={{URL|https://docker.com}}|Väljalaskeaeg=13. märts 2013|Programmeerimiskeel=Go}}
 
'''Docker''' on [[arvutiprogramm]], mis teostab operatsioonisüsteemi tasemel [[Virtualiseerimine|virtualiseerimist]], teisiti tuntud kui “konteineriseerimine”.<ref>{{Netiviide|Autor=|URL=http://opensourceforu.com/2017/02/docker-favourite-devops-world/|Pealkiri=Docker: A Favourite in the DevOps World|Väljaanne=Open Source For U|Aeg=8. veebruar 2017|Kasutatud=5. detsember 2018}}</ref> See avaldati 2013. aastal ning seda arendab Docker, Inc. Dockerit kasutatakse tarkvarapakettide (konteinerite) jooksutamiseks. Konteinerid on isoleeritud teineteisest ning sisaldavad enda tööriistu, teeke ja konfiguratsioonifaile; konteinerid saavad suhelda teineteistega kindlaksmääratud kanalite kaudu. Kõiki konteinereid juhib üks [[Operatsioonisüsteem|operatsioonisüsteemi]] [[Tuum (informaatika)|kernel]] ning on seetõttu on need kergekaalulisemad [[Virtuaalmasin|virtuaalmasinatest]].<ref>{{Netiviide|Autor=|URL=http://unionfs.filesystems.org/|Pealkiri=Unionfs: A Stackable Unification File System|Väljaanne=|Aeg=|Kasutatud=5. detsember 2018}}</ref>
 
== Ajalugu ==
Solomon Hykes algatas Dockeri [[Prantsusmaa|Prantsusmaal]] siseprojektina ettevõttes dotCloud koos teiste arendajate Andrea Luzzardi ja Francois-Xavier Bourlet’ga. Tarkvara sai avalikuks Santa Claras toimunud PyConil 2013. aastal.<ref>{{Netiviide|Autor=|URL=https://www.cleverism.com/company/docker/|Pealkiri=Ettevõtte ülevaade|Väljaanne=Cleverism|Aeg=|Kasutatud=5. detsember 2018}}</ref>
 
Docker avaldati avatud lähtekoodina märtsis 2013. aastal.<ref>{{Netiviide|Autor=Jordan Novet|URL=https://venturebeat.com/2015/04/14/docker-raises-95m-led-by-insight-venture-partners/|Pealkiri=Docker, the startup that kicked off the container revolution, raises $95M|Väljaanne=Venture Beat|Aeg=14. aprill, 2015|Kasutatud=5. detsember 2018}}</ref>
Docker avaldati avatud lähtekoodina märtsis 2013. aastal.
 
== Komponendid ==
Docker kasutab klient-server arhitektuuri. Dockeri klient suhtleb Dockeri deemoniga (ingl ''daemon''), mis ehitab, jooksutab ning jagab Dockeri konteinereid. Dockeri klient ja deemon suhtlevad üle REST API, UNIX socketite või võrguliideste. Klient-server rakenduse nimeks on Docker Engine.<ref name=":1">{{Netiviide|Autor=Docker.com|URL=https://docs.docker.com/engine/docker-overview|Pealkiri=Docker overview|Väljaanne=|Aeg=|Kasutatud=5. detsember 2018}}</ref>
 
Dockeri register hoiustab Dockeri pilte, mis sisaldab juhist konteineri loomiseks. Sageli põhineb pilt mõnel teisel pildil, kuid sisaldab lisaks täiendavat funktsionaalsust. Näiteks võib luua pildi, mis põhineb [[Ubuntu]] distributsioonil ning koosneb veel täiendavalt Apache veebiserverist ja konfiguratsiooniseadetest. Pildi ehitamiseks tuleb luua Dockerfile, mis kirjeldab vajalikke samme. Dockeri konteiner on jooksutatav versioon pildist. Seda saab luua, peatada, alustada, kustutada või muuta kasutades Docker API-d või CLI-d.<ref name=":0">{{Netiviide|Autor=|URL=https://docs.docker.com/v17.09/engine/userguide/storagedriver/imagesandcontainers/|Pealkiri=Docker: About images, containers, and storage drivers|Väljaanne=|Aeg=|Kasutatud=5. detsember 2018}}</ref>
 
Dockeri konteiner on jooksutatav versioon pildist. Seda saab luua, peatada, alustada, kustutada või muuta kasutades Docker API-d või CLI-d.<ref name=":0" />
 
== Tehnoloogia ==
Docker võimaldab jooksutada rakendusi isoleeritud keskkonnas, mida nimetatakse konteineriks. Konteinerid on kergekaalulised, sest need ei vaja hüpervisorit, vaid jooksevad arvuti kernelil.<ref name=":1" />
 
Docker on kirjutatud keeles Go ning kasutab mitut [[Linux|Linuxi]] kerneli funktsiooni.<ref>{{Netiviide|Autor=Jérôme Petazzoni|URL=https://www.slideshare.net/jpetazzo/docker-and-go-why-did-we-decide-to-write-docker-in-go|Pealkiri=Docker and Go: why did we decide to write Docker in Go?|Väljaanne=|Aeg=7. november 2013|Kasutatud=5. detsember 2018}}</ref>
 
Üheks selliseks funktsiooniks on nimeruumid, mis võimaldavad isoleerida konteineri erinevaid kihte. Docker Engine kasutab järgnevaid nimeruume Linuxil:<ref>{{Netiviide|Autor=|URL=https://success.docker.com/article/introduction-to-user-namespaces-in-docker-engine|Pealkiri=Docker: Introduction to User Namespaces in Docker Engine|Väljaanne=|Aeg=|Kasutatud=5. detsember 2018}}</ref> Docker Engine kasutab järgnevaid nimeruume Linuxil:
 
* '''pid''': protsesside isoleerimine;
29. rida ⟶ 27. rida:
* '''uts''': kerneli ja versiooniidentifikaatorite isoleerimine.
 
Teine Linuxi funktsionaalsus on kontrollgrupid (ingl ''cgroups''). Kontrollgrupp piirab rakendusele kindla hulga ressursse.<ref>{{Netiviide|Autor=|URL=http://man7.org/linux/man-pages/man7/cgroups.7.html|Pealkiri=cgroups|Väljaanne=Linux Programmer's Manual|Aeg=|Kasutatud=5. detsember 2018}}</ref> Kontrollgrupid võimaldavad Docker Engine’il jagada vabu riistvara ressursse konteineritele ning vajadusel seada piire.<ref>{{Netiviide|Autor=|URL=https://medium.com/@nagarwal/understanding-the-docker-internals-7ccb052ce9fe|Pealkiri=Understanding the Docker Internals|Väljaanne=|Aeg=|Kasutatud=5. detsember 2018}}</ref>
 
Docker Engine kasutab UnionFS failisüsteemi, mille tööpõhimõtteks on erinevate kihtide lisamine teineteise peale. Docker Engine kasutab erinevaid UnionFS-i variante, nende seas AUFS, btrfs, vfs ja DeviceMapper.<ref>{{Netiviide|Autor=|URL=https://medium.com/@paccattam/drooling-over-docker-2-understanding-union-file-systems-2e9bf204177c|Pealkiri=Drooling Over Docker #2 — Understanding Union File Systems|Väljaanne=|Aeg=|Kasutatud=5. detsember 2018}}</ref>
 
Docker Engine kombineerib nimeruumid, kontrollgrupid ja UnionFS-i kokku konteineriformaati.<ref>{{Netiviide|Autor=|URL=https://docs.docker.com/engine/docker-overview/#container-format|Pealkiri=Docker overview - Container format|Väljaanne=|Aeg=|Kasutatud=5. detsember 2018}}</ref>
 
== Vaata ka ==