__БЕЗКН__
мини|Претходни логотип
() је скуп производа платформа као услуга (PaaS) који користе виртуелизацију на нивоу оперативног система за испоруку софтвера у пакетима који се називају контејнери. Услуга има и бесплатне и премијум нивое. Софтвер који хостује контејнере назива се Docker Engine. Први пут је објављен 2013. године и развија га компанија Docker, Inc..
Докер је алат који се користи за аутоматизацију примене апликација у лаким контејнерима, како би апликације могле ефикасно да раде у различитим окружењима, у изолацији.
Позадина Контејнери су међусобно изоловани и садрже сопствени софтвер, библиотеке и конфигурационе датотеке; могу међусобно комуницирати путем добро дефинисаних канала. Пошто сви контејнери деле услуге једног језгра оперативног система, они користе мање ресурса него виртуелне машине.
Функционисање мини| може користити различите интерфејсе за приступ функцијама виртуелизације Линукс језгра.
може да упакује апликацију и њене зависности у виртуелни контејнер који се може покренути на било ком Линукс, Виндоус или macOS рачунару. Ово омогућава да се апликација покреће на различитим локацијама, као што су локално, у јавном (види децентрализовано рачунарство, дистрибуирано рачунарство и рачунарство у облаку) или приватном облаку. Када ради на Линуксу, користи функције изолације ресурса Линукс језгра (као што су cgroups и простори имена језгра) и систем датотека са могућношћу унион монтирања (као што је OverlayFS) како би омогућио контејнерима да раде унутар једне инстанце Линукса, избегавајући преоптерећење покретања и одржавања виртуелних машина. на macOS-у користи Линукс виртуелну машину за покретање контејнера.
Пошто су контејнери лагани, један сервер или виртуелна машина може истовремено покренути неколико контејнера. Анализа из 2018. године показала је да типичан случај употребе Докера укључује покретање осам контејнера по хосту, те да четвртина анализираних организација покреће 18 или више по хосту. Такође се може инсталирати на рачунар на једној плочи као што је Raspberry Pi. Подршка Линукс језгра за просторе имена углавном изолује поглед апликације на оперативно окружење, укључујући стабла процеса, мрежу, корисничке ID-еве и монтиране системе датотека, док cgroups језгра обезбеђују ограничавање ресурса за меморију и CPU. Од верзије 0.9, укључује сопствену компоненту (названу ) за коришћење функција виртуелизације које директно пружа Линукс језгро, поред коришћења апстрахованих интерфејса за виртуелизацију путем libvirt, LXC-а и systemd-nspawn.
имплементира API високог нивоа како би обезбедио лагане контејнере који покрећу процесе у изолацији.
Модел лиценцирања
Docker Engine је лиценциран под Апачи лиценцом 2.0. Docker Desktop дистрибуира неке компоненте које су лиценциране под ГНУ-овом општом јавном лиценцом. Docker Desktop није бесплатан за велика предузећа. Датотеке Dockerfile могу саме по себи бити лиценциране под лиценцом отвореног кода. Обим такве изјаве о лиценци односи се само на Dockerfile, а не на слику контејнера.
Компоненте
Софтверска понуда ове услуге састоји се од три компоненте:
Софтвер: демон, назван , јесте постојани процес који управља контејнерима и објектима контејнера. Демон ослушкује захтеве послате путем API-ја Docker Engine-а. клијентски програм, назван , пружа интерфејс командне линије (CLI) који омогућава корисницима интеракцију са демонима. Објекти: објекти су различити ентитети који се користе за састављање апликације у Докеру. Главне класе објеката су слике, контејнери и сервиси. контејнер је стандардизовано, енкапсулирано окружење које покреће апликације. Контејнером се управља помоћу API-ја или CLI-ја. слика је шаблон само за читање који се користи за изградњу контејнера. Слике се користе за складиштење и испоруку апликација. сервис омогућава скалирање контејнере преко више демона. Резултат је познат као swarm (рој), скуп демона који сарађују и комуницирају путем API-ја. Регистри: регистар је спремиште за слике. клијенти се повезују са регистрима како би преузели („pull”) слике за употребу или отпремили („push”) слике које су изградили. Регистри могу бити јавни или приватни. Главни јавни регистар је Docker Hub. Docker Hub је подразумевани регистар где тражи слике. регистри такође омогућавају креирање обавештења на основу догађаја.
Dockerfile (пример) је текстуална датотека која обично специфицира неколико аспеката контејнера: Линукс дистрибуцију, команде за инсталацију извршног окружења програмског језика и изворни код апликације.
Пример Dockerfile-а:ARG CODE_VERSION=latest FROM ubuntu:${CODE_VERSION} COPY ./examplefile.txt /examplefile.txt ENV MY_ENV_VARIABLE="example_value" RUN apt-get update
# Монтирај директоријум из Docker волумена # Напомена: Ово се обично наводи у команди 'docker run'. VOLUME ["/myvolume"]
# Изложи порт (22 за SSH) EXPOSE 22
Алати Docker Compose је алат за дефинисање и покретање вишеконтејнерских апликација. Користи YAML датотеке за конфигурисање сервиса апликације и извршава процес креирања и покретања свих контејнера једном командом. CLI услужни програм омогућава корисницима да извршавају команде на више контејнера одједном; на пример, изградња слика, скалирање контејнера, покретање заустављених контејнера и друго. Команде везане за манипулацију сликама или интерактивне опције за корисника нису релевантне у Docker Compose-у јер се односе на један контејнер. Датотека docker-compose.yml користи се за дефинисање сервиса апликације и укључује различите опције конфигурације. На пример, опција дефинише опције конфигурације као што је путања до Dockerfile-а, опција омогућава замену подразумеваних команди, и друго. Прва јавна бета верзија Docker Compose-а (верзија 0.0.1) објављена је 21. децембра 2013. Прва верзија спремна за продукцију (1.0) постала је доступна 16. октобра 2014. Docker Swarm пружа нативну функционалност кластеризације за контејнере, која претвара групу мотора у један виртуелни мотор. У Докеру 1.12 и новијим верзијама, Swarm режим је интегрисан са Docker Engine-ом. CLI услужни програм омогућава корисницима покретање Swarm контејнера, креирање токена за откривање, листирање чворова у кластеру и друго. CLI услужни програм омогућава корисницима да покрећу различите команде за управљање чворовима у роју, на пример, листирање чворова у роју, ажурирање чворова и уклањање чворова из роја. управља ројевима користећи Raft алгоритам консензуса. Према Raft-у, да би се ажурирање извршило, већина чворова у роју мора се сложити са ажурирањем. Поред CLI-ја, је алат дизајниран за управљање Swarm сервисима са већом флексибилношћу. Може користити конфигурациону датотеку веома сличну docker-compose.yml, са неколико нијанси. Коришћење уместо нуди неколико предности, као што је могућност управљања Swarm кластером на више машина или способност рада са у комбинацији са , функцијом која омогућава извршавање команди на удаљеном хосту, чиме се омогућава даљинско управљање контејнерима. Docker Volume олакшава независно очување података, омогућавајући да подаци остану чак и након што се контејнер избрише или поново креира.
Историја
Компанију dotCloud Inc. основали су Камел Фунади, Соломон Хајкс и Себастјен Пал током летње групе стартап инкубатора Y Combinator 2010. године, а покренута је 2011. Преименована је у Docker Inc. 2013. године. Стартап је такође био један од 12 стартапова у првој групи Founder's Den-а. Хајкс је покренуо пројекат у Француској као интерни пројекат у оквиру компаније dotCloud, компаније за платформу као услугу.
је дебитовао у јавности у Санта Клари на PyCon-у 2013. године. Објављен је као отворени код у марту 2013. У то време, користио је LXC као своје подразумевано извршно окружење. Годину дана касније, са издањем верзије 0.9, Докер је заменио LXC сопственом компонентом, libcontainer, која је написана у програмском језику Go.
Године 2017, је креирао за отворено истраживање и развој.
Усвајање 19. септембар 2013: Red Hat и су најавили сарадњу у вези са Федором, Red Hat Enterprise Linux-ом (RHEL) и OpenShift-ом. 15. октобар 2014: Мајкрософт је најавио интеграцију Docker мотора у Windows Server, као и нативну подршку за улогу Docker клијента у Виндоусу. Новембар 2014: Најављене су услуге Докера за Amazon Elastic Compute Cloud (EC2). 10. новембар 2014: је најавио партнерство са компанијом Stratoscale. 4. децембар 2014: IBM је најавио стратешко партнерство са Докером које омогућава Докеру да се ближе интегрише са IBM Cloud-ом. 22. јун 2015: и неколико других компанија најавили су да раде на новом стандарду за софтверске контејнере који је независан од произвођача и оперативног система. Децембар 2015: Oracle Cloud је додао подршку за контејнере након аквизиције компаније StackEngine, стартапа за контејнере. Април 2016: Windocks, независни произвођач софтвера, објавио је порт Докеровог пројекта отвореног кода за Виндоус, подржавајући Windows Server 2012 R2 и Server 2016, са свим издањима SQL Server-а 2008 и новијим. Мај 2016: Анализа је показала да су следеће организације главни доприносиоци Докеру: тим, Cisco, Google, Huawei, IBM, Мајкрософт и Red Hat. 8. јун 2016: Мајкрософт је најавио да се сада може нативно користити на Виндоусу 10. Јануар 2017: Анализа помена на LinkedIn профилима показала је да је присуство Докера порасло за 160% у 2016. години. 6. мај 2019: Мајкрософт је најавио другу верзију Помоћног система Виндоуса за Линукс (WSL). Docker, Inc. је најавио да је почео да ради на верзији Докера за Виндоус која ће радити на WSL 2. То је посебно значило да може да ради на Виндоусу 10 Home (раније је био ограничен на Windows Pro и Enterprise јер је користио Hyper-V). Август 2020: Мајкрософт је најавио пренос WSL2 на Виндоус 10 верзије 1903 и 1909 (раније је WSL2 био доступан само на верзији 2004), а програмери Докера најавили су доступност Докера за ове платформе. Август 2021: Docker Desktop за Виндоус и macOS више није био доступан бесплатно за пословне кориснике. је укинуо бесплатно коришћење компоненте за веће пословне кориснике и заменио свој бесплатни план личним планом. Docker Engine на Линукс дистрибуцијама остао је непромењен. Децембар 2023: је купио AtomicJar како би проширио своје могућности тестирања.
Види још DevOps DevOps ланац алата gVisor Кубернетес Списак Линукс контејнера Микросервиси Виртуелизација на нивоу оперативног система Podman Архитектура сервисних компоненти Singularity – алтернатива Докеру за HPC кластере Open Container Initiative
Референце
Категорија:Слободан софтвер за виртуелизацију Категорија:Технологија оперативних система Категорија:Софтвер за виртуелизацију за Линукс Категорија:Софтвер под Апачи лиценцом