Docker

З Вікіпедыі, свабоднай энцыклапедыі
Docker
Выява лагатыпа
Тып свабоднае і адкрытае праграмнае забеспячэнне[d], механізм віртуалізацыі[d] і фармат апісання кантэйнераў[d]
Аўтар Саламон Хайкс[d]
Распрацоўшчык Docker, Inc.[d]
Напісана на Go[2]
Аперацыйная сістэма Linux[3], Windows[4], macOS[5] і UNIX-падобная аперацыйная сістэма
Першы выпуск 13 сакавіка 2013[6]
Апошняя версія
  • 26.1.0 (22 красавіка 2024)[1]
Ліцэнзія прапрыетарная ліцэнзія[d] і Apache License, Version 2.0[d][7][8]
Сайт docker.com (англ.)
Лагатып Вікісховішча Медыяфайлы на Вікісховішчы

Docker — праграмнае забеспячэнне для аўтаматызацыі разгортвання і кіравання праграмамі ў асяроддзях з падтрымкай кантэйнерызацыі. Дазваляе «запакаваць» праграму з усім яе акружэннем і залежнасцямі(?) ў кантэйнер, які можа быць разгорнуты на любой Linux-сістэме з падтрымкай кантрольных груп у ядры, а таксама дае набор каманд для кіравання гэтымі кантэйнерамі. Першапачаткова Docker карыстаўся магчымасцямі LXC, а з 2015 года пачаў выкарыстоўваць уласную бібліятэку, якая абстрагуе віртуалізацыйныя магчымасці ядра Linux — libcontainer. Са з’яўленнем Open Container Initiative пачаўся пераход ад маналітнай да модульнай архітэктуры.

Распрацоўваецца і падтрымліваецца аднайменнай кампаніяй-стартапам, распаўсюджваецца ў двух рэдакцыях — грамадскай (Community Edition) па ліцэнзіі Apache 2.0 і для арганізацый (Enterprise Edition) па прапрыетарнай ліцэнзіі[9]. Напісаны на мове Go.

Гісторыя[правіць | правіць зыходнік]

Праект пачаты як унутраная ўласная распрацоўка кампаніі dotCloud, заснаванай Саламонам Хайксам (Solomon Hykes) у 2008 годзе з мэтай стварэння публічнай PaaS- платформы з падтрымкай розных моў праграмавання. Разам з Хайксам у першапачатковай распрацоўцы значны ўдзел прынялі інжынеры dotCloud Андрэа Лудзардзі (Andrea Luzzardi) і Франсуа-Ксаўе Бурле (François-Xavier Bourlet).

У сакавіку 2013 года код Docker быў апублікаваны пад ліцэнзіяй Apache 2.0[10]. У чэрвені 2013 года генеральным дырэктарам у dotCloud запрошаны Бэн Голуб[en], які раней кіраваў фірмай Gluster[en] (распрацоўшчык тэхналогіі размеркаванага захоўвання GlusterFS і паглынутай за $136 млн Red Hat у 2011 годзе) [11]. У кастрычніку 2013 года, каб падкрэсліць зрух фокусу да новай ключавой тэхналогіі, dotCloud была перайменавана ў Docker (пры гэтым PaaS-платформа захавана пад ранейшай назвай — dotCloud).

У кастрычніку 2013 года быў выпушчаны рэліз Havana тыражаваную IaaS-платформы OpenStack, у якім рэалізавана падтрымка Docker (як драйвер для OpenStack Nova). З лістапада 2013 года частковая падтрымка Docker уключана ў дыстрыбутыў Red Hat Enterprise Linux версіі 6.5[12] і поўная — у 20-ю версію дыстрыбутыва Fedora, раней былі дасягнуты пагадненні з Red Hat аб уключэнні з 2014 года Docker у тыражаваную PaaS-платформу OpenShi[13]. У снежні 2013 года абвешчана аб падтрымцы разгортвання Docker-кантэйнераў у асяроддзі Google Compute Engine[en] [14].

З 2014 года вядзецца праца па ўключэнні падтрымкі Docker у асяроддзе кіравання фрэймворка размеркаваных праграм Hadoop. Па выніках тэсціравання варыянтаў платформы віртуалізацыі для Hadoop, праведзенага ў маі 2014 года, Docker паказаў на асноўных аперацыях (па масавым стварэнні, перазапуску і знішчэнні віртуальных вузлоў) істотна больш высокую прадукцыйнасць, чым KVM. На тэсце масавага стварэння віртуальных вылічальных вузлоў прырост спажывання працэсарных рэсурсаў у Docker зафіксаваны ў 26 разоў ніжэйшы, чым у KVM, а прырост спажывання рэсурсаў аператыўнай памяці — утрая ніжэйшы[15].

З 2017 года дадаткова да рэдакцыі, што свабодна распаўсюджваецца пад ліцэнзіяй Apache 2.0, выпускаецца рэдакцыя для арганізацый, якая прадаецца па цэнах ад $750 да $2 тыс. у год на вузел у залежнасці ад даступных функцый[9].

Выкарыстанне[правіць | правіць зыходнік]

Docker на фізічным Linux-серверы[16]

Праграмнае забеспячэнне функцыянуе ў асяроддзі Linux з ядром, якое падтрымлівае кантрольныя групы і ізаляцыю прастор імёнаў (namespaces). Існуюць зборкі толькі для платформаў x86-64 і ARM[17]. Пачынаючы з версіі 1.6 2015 года магчыма выкарыстанне ў аперацыйных сістэмах сямейства Windows[18].

Для эканоміі прасторы захоўвання праект выкарыстоўвае файлавую сістэму Aufs з падтрымкай тэхналогіі каскадна-аб’яднанага манціравання: кантэйнеры выкарыстоўваюць вобраз базавай аперацыйнай сістэмы, а змены запісваюцца ў асобную вобласць. Таксама падтрымліваецца размяшчэнне кантэйнераў у файлавай сістэме Btrfs з уключаным рэжымам капіявання пры запісе.

У склад праграмных сродкаў уваходзіць дэмансервер кантэйнераў (запускаецца камандай docker -d), кліенцкія сродкі, якія дазваляюць з інтэрфейсу каманднага радка кіраваць вобразамі і кантэйнерамі, а таксама API, якое дазваляе ў стылі REST кіраваць кантэйнерамі праграмна.

Дэман забяспечвае поўную ізаляцыю запускаемых у вузле кантэйнераў на ўзроўні файлавай сістэмы (у кожнага кантэйнера ўласная каранёвая файлавая сістэма), на ўзроўні працэсаў (працэсы маюць доступ толькі да ўласнай файлавай сістэмы кантэйнера, а рэсурсы падзеленыя сродкамі libcontainer), на ўзроўні сеткі (кожны кантэйнер мае доступ толькі да прывязанай да яго сеткавай прасторы імёнаў і адпаведным віртуальным сеткавым інтэрфейсам).

Набор кліенцкіх сродкаў дазваляе запускаць працэсы ў новых кантэйнерах (docker run), спыняць і запускаць кантэйнеры (docker stop і docker start), прыпыняць і аднаўляць працэсы ў кантэйнерах (docker pause і docker unpause). Серыя каманд дазваляе ажыццяўляць маніторынг запушчаных працэсаў (docker ps па аналогіі з ps у Unix-сістэмах, docker top па аналогіі з top і іншыя). Новыя вобразы магчыма ствараць з адмысловага сцэнарнага файла (docker build, файл сцэнарыя носіць назву Dockerfile), магчыма запісаць усе змены, зробленыя ў кантэйнеры, у новы вобраз (docker commit). Усе каманды могуць працаваць як з docker-дэманам лакальнай сістэмы, так і з любым серверам Docker, даступным па сетцы. Акрамя таго, у інтэрфейсе каманднага радка ўбудаваны магчымасці па ўзаемадзеянні з публічным рэпазіторыям Docker Hub, у якім размешчаны папярэдне сабраныя вобразы праграм. Каманда docker search дазваляе ажыццявіць пошук вобразаў сярод размешчаных у ім[19], вобразы можна спампоўваць у лакальную сістэму (docker pull), магчыма таксама адправіць лакальна сабраныя вобразы ў Docker Hub (docker push).

Таксама Docker мае пакетны менеджар Docker Compose, які дазваляе апісваць і запускаць шматкантэйнерныя праграмы; канфігурацыйныя файлы для яго апісваюцца на мове YAML.

Зноскі

  1. v26.1.0 — 2024. Праверана 23 красавіка 2024.
  2. http://thenewstack.io/go-programming-language-helps-docker-container-ecosystem/ Праверана 19 жніўня 2016.
  3. https://docs.docker.com/engine/installation/linux/ Праверана 19 жніўня 2016.
  4. https://docs.docker.com/docker-for-windows/ Праверана 19 жніўня 2016.
  5. https://docs.docker.com/docker-for-mac/ Праверана 19 жніўня 2016.
  6. Schmidt J. Docker bekommt 15 Millionen Risikokapitalheise online, 2014. Праверана 13 студзеня 2017.
  7. https://github.com/docker/docker/blob/master/LICENSE
  8. LICENSE Праверана 26 сакавіка 2017.
  9. а б Thomas Claburn. Docker looks big biz in the eye: It’s not you, it’s EE — Enterprise Edition. Straight out of the Red Hat playbook: Take your VM images and pay for support (англ.). The Register (3 сакавіка 2017). — «Docker has extended its product line by adding two E’s, for Enterprise Edition, a version of its container software tuned to the demands of businesses […] And of course there are tiers, with fees for support: Basic ($750/year); Standard ($1,500/year); and Advanced ($2,000/year)»  Архівавана з першакрыніцы 1 ліпеня 2017. Праверана 29 чэрвеня 2017.
  10. Avram, Abel. Docker: Automated and Consistent Software Deployments (англ.). InfoQ (27 сакавіка 2013). Архівавана з першакрыніцы 3 мая 2014. Праверана 3 мая 2014.
  11. Darrow, Barb. PaaS pioneer dotCloud gets new CEO in industry vet Ben Golub. Former CEO of Gluster says PaaSes need to support multiple stacks and environments — running in house, public clouds, wherever (англ.). GigaOM (23 ліпеня 2013). Архівавана з першакрыніцы 3 мая 2014. Праверана 3 мая 2014.
  12. Sean Michael Kerner. Red Hat Enterprise Linux 6.5 Delivers Precision Timing. Red Hat’s new enterprise Linux release debuts with new security, virtualization and time-keeping features (англ.)(недаступная спасылка — гісторыя ). eWeek (21 лістапада 2013). Праверана 3 мая 2014.
  13. Williams, Alex. The Matrix Of Hell And Two Open-Source Projects For The Emerging Agnostic Cloud (англ.). TechCrunch (28 ліпеня 2013). Архівавана з першакрыніцы 24 верасня 2016. Праверана 3 мая 2014.
  14. Frederic Lardinois. Google’s Compute Engine Hits General Availability, Drops Instance Prices 10%, Adds 16-Core Instances & Docker Support (англ.). TechCrunch (19 верасня 2013). Архівавана з першакрыніцы 2 мая 2014. Праверана 3 мая 2014.
  15. Jack Clark. Docker ported into Hadoop as benchmarks show screaming fast performance. Code committers hope unholy union of open source tech will spawn speedy gonzalez virtualization (англ.). The Register (2 мая 2014). — «Based on the compute node resource usage metrics during the serial VM packing test: Docker LXC CPU growth is approximately 26x lower than KVM. On this surface this indicates a 26x density potential increase from a CPU point of view using docker LXC vs a traditional hypervisor. Docker LXC memory growth is approximately 3x lower than KVM.»  Архівавана з першакрыніцы 3 мая 2014. Праверана 3 мая 2014.
  16. {{{загаловак}}}. — 2015. — ISBN 978-1-78439-793-7.
  17. Install Docker (англ.). Docker Documentation. Архівавана з першакрыніцы 13 жніўня 2017. Праверана 13 жніўня 2017.
  18. Blog | Docker (англ.). www.docker.com (23 верасня 2021). Праверана 30 жніўня 2023.
  19. Рэпазіторый размешчаны па адрасе registry.hub.docker.com

Спасылкі[правіць | правіць зыходнік]