Docker

Поделись знанием:
Перейти к: навигация, поиск
Docker
Тип

Виртуализация на уровне операционной системы

Автор

Соломон Хайкс

Разработчик

Компания Docker

Состояние

Активная разработка

К:Википедия:Статьи без изображений (тип: не указан)

Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы, например LXC. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.

Разрабатывается и поддерживается одноимённой компанией-стартапом, распространяется как свободное программное обеспечение под лицензией Apache 2.0. Написан на языке Go.





История

Проект начат как внутренняя собственническая разработка компании dotCloud, основанной Соломоном Хайксом (Solomon Hykes) в 2008 году с целью построения публичной PaaS-платформы с поддержкой различных языков программирования. Наряду с Хайксом в первоначальной разработке значительное участие приняли инженеры dotCloud Андреа Лудзарди (Andrea Luzzardi) и Франсуа-Ксавье Бурле (Francois-Xavier Bourlet).

В марте 2013 года код Docker был опубликован под лицензией Apache 2.0[1]. В июне 2013 года генеральным директором в dotCloud приглашён Бен Голуб (англ. Ben Golub), ранее руководивший фирмой Gluster[en] (разрабатывавшей технологию распределённого хранения GlusterFS и поглощённой за $136 млн Red Hat в 2011 году)[2]. В октябре 2013 года, подчёркивая смещение фокуса к новой ключевой технологии, dotCloud переименована в Docker (при этом PaaS-платформа сохранена под прежним названием — dotCloud).

В октябре 2013 года выпущен релиз Havana тиражируемой IaaS-платформы OpenStack, в котором реализована поддержка Docker (как драйвер для OpenStack Nova). С ноября 2013 года частичная поддержка Docker включена в дистрибутив Red Hat Enterprise Linux версии 6.5[3] и полная — в 20-ю версию дистрибутива Fedora, ранее было достигнуто соглашение с Red Hat о включении с 2014 года Docker в тиражируемую PaaS-платформу Open Shift[en][4]. В декабре 2013 года объявлено о поддержке развёртывания Docker-контейнеров в среде Google Compute Engine[en][5].

С 2014 года ведутся работы по включению поддержки Docker в среду управления фреймворка распределённых приложений Hadoop; по результатам тестирования вариантов платформы виртуализации для Hadoop, проведённом в мае 2014 года, Docker показал на основных операциях (по массовому созданию, перезапуску и уничтожению виртуальных узлов) существенно более высокую производительность, нежели KVM, в частности, на тесте массового создания виртуальных вычислительных узлов прирост потребления процессорных ресурсов в Docker зафиксирован в 26 раз ниже, чем в KVM, а прирост потребления ресурсов оперативной памяти — втрое ниже[6].

Применение

Программное обеспечение функционирует в среде Linux с ядром, поддерживающим cgroups и изоляцию пространств имён (namespaces); существуют сборки только для платформы x86-64.

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

В состав программных средств входит демон — сервер контейнеров (запускается командой docker -d), клиентские средства, позволяющие из интерфейса командной строки управлять образами и контейнерами, а также API, позволяющий в стиле REST управлять контейнерами программно.

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

Набор клиентских средств позволяет запускать процессы в новых контейнерах (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 позволяет осуществить поиск образов среди размещённых в нём[8], образы можно скачивать в локальную систему (docker pull), возможно также отправить локально собранные образы в Docker Hub (docker push).

Напишите отзыв о статье "Docker"

Примечания

  1. Avram, Abel [www.infoq.com/news/2013/03/Docker Docker: Automated and Consistent Software Deployments] (англ.). InfoQ (27 March 2013). Проверено 3 мая 2014.
  2. Darrow, Barb [gigaom.com/2013/07/23/paas-pioneer-dotcloud-gets-new-ceo-in-industry-vet-ben-golub/ 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 July 2013). Проверено 3 мая 2014.
  3. Sean Michael Kerner. [www.eweek.com/enterprise-apps/red-hat-enterprise-linux-6.5-delivers-precision-timing.html 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 November 2013). Проверено 3 мая 2014.
  4. Williams, Alex [techcrunch.com/2013/07/28/the-matrix-of-hell-and-two-open-source-projects-for-the-emerging-agnostic-cloud/ The Matrix Of Hell And Two Open-Source Projects For The Emerging Agnostic Cloud] (англ.). TechCrunch (28 July 2013). Проверено 3 мая 2014.
  5. Frederic Lardinois. [techcrunch.com/2013/12/02/googles-compute-engine-hits-general-availability-drops-instance-prices-10-adds-new-16-core-instance-types-and-docker-support/ Google’s Compute Engine Hits General Availability, Drops Instance Prices 10%, Adds 16-Core Instances & Docker Support] (англ.). TechCrunch (19 September 2013). Проверено 3 мая 2014.
  6. Jack Clark. [www.theregister.co.uk/2014/05/02/docker_hadoop/ 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 May 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.
  7. Pethuru Raj; Jeeva S. Chelladhurai; Vinod Singh. Learning Docker. — Packt Publishing, 2015. — 240 с. — ISBN 978-1-78439-793-7.
  8. Репозиторий расположен по адресу [registry.hub.docker.com y.hub.docker.com]

Литература

  • Dirk Merkel Docker: lightweight Linux containers for consistent development and deployment (англ.) // Linux Journal. — 2014. — Vol. March, no. 239. — P. art. 2.

Ссылки

  • [www.docker.com ker.com] — официальный сайт Docker
  • [github.com/dotcloud/docker Проект Docker] на сайте GitHub

Отрывок, характеризующий Docker

Объезжая Сухареву башню, Наташа, любопытно и быстро осматривавшая народ, едущий и идущий, вдруг радостно и удивленно вскрикнула:
– Батюшки! Мама, Соня, посмотрите, это он!
– Кто? Кто?
– Смотрите, ей богу, Безухов! – говорила Наташа, высовываясь в окно кареты и глядя на высокого толстого человека в кучерском кафтане, очевидно, наряженного барина по походке и осанке, который рядом с желтым безбородым старичком в фризовой шинели подошел под арку Сухаревой башни.
– Ей богу, Безухов, в кафтане, с каким то старым мальчиком! Ей богу, – говорила Наташа, – смотрите, смотрите!
– Да нет, это не он. Можно ли, такие глупости.
– Мама, – кричала Наташа, – я вам голову дам на отсечение, что это он! Я вас уверяю. Постой, постой! – кричала она кучеру; но кучер не мог остановиться, потому что из Мещанской выехали еще подводы и экипажи, и на Ростовых кричали, чтоб они трогались и не задерживали других.
Действительно, хотя уже гораздо дальше, чем прежде, все Ростовы увидали Пьера или человека, необыкновенно похожего на Пьера, в кучерском кафтане, шедшего по улице с нагнутой головой и серьезным лицом, подле маленького безбородого старичка, имевшего вид лакея. Старичок этот заметил высунувшееся на него лицо из кареты и, почтительно дотронувшись до локтя Пьера, что то сказал ему, указывая на карету. Пьер долго не мог понять того, что он говорил; так он, видимо, погружен был в свои мысли. Наконец, когда он понял его, посмотрел по указанию и, узнав Наташу, в ту же секунду отдаваясь первому впечатлению, быстро направился к карете. Но, пройдя шагов десять, он, видимо, вспомнив что то, остановился.
Высунувшееся из кареты лицо Наташи сияло насмешливою ласкою.
– Петр Кирилыч, идите же! Ведь мы узнали! Это удивительно! – кричала она, протягивая ему руку. – Как это вы? Зачем вы так?
Пьер взял протянутую руку и на ходу (так как карета. продолжала двигаться) неловко поцеловал ее.
– Что с вами, граф? – спросила удивленным и соболезнующим голосом графиня.
– Что? Что? Зачем? Не спрашивайте у меня, – сказал Пьер и оглянулся на Наташу, сияющий, радостный взгляд которой (он чувствовал это, не глядя на нее) обдавал его своей прелестью.
– Что же вы, или в Москве остаетесь? – Пьер помолчал.
– В Москве? – сказал он вопросительно. – Да, в Москве. Прощайте.
– Ах, желала бы я быть мужчиной, я бы непременно осталась с вами. Ах, как это хорошо! – сказала Наташа. – Мама, позвольте, я останусь. – Пьер рассеянно посмотрел на Наташу и что то хотел сказать, но графиня перебила его:
– Вы были на сражении, мы слышали?
– Да, я был, – отвечал Пьер. – Завтра будет опять сражение… – начал было он, но Наташа перебила его:
– Да что же с вами, граф? Вы на себя не похожи…
– Ах, не спрашивайте, не спрашивайте меня, я ничего сам не знаю. Завтра… Да нет! Прощайте, прощайте, – проговорил он, – ужасное время! – И, отстав от кареты, он отошел на тротуар.
Наташа долго еще высовывалась из окна, сияя на него ласковой и немного насмешливой, радостной улыбкой.


Пьер, со времени исчезновения своего из дома, ужа второй день жил на пустой квартире покойного Баздеева. Вот как это случилось.
Проснувшись на другой день после своего возвращения в Москву и свидания с графом Растопчиным, Пьер долго не мог понять того, где он находился и чего от него хотели. Когда ему, между именами прочих лиц, дожидавшихся его в приемной, доложили, что его дожидается еще француз, привезший письмо от графини Елены Васильевны, на него нашло вдруг то чувство спутанности и безнадежности, которому он способен был поддаваться. Ему вдруг представилось, что все теперь кончено, все смешалось, все разрушилось, что нет ни правого, ни виноватого, что впереди ничего не будет и что выхода из этого положения нет никакого. Он, неестественно улыбаясь и что то бормоча, то садился на диван в беспомощной позе, то вставал, подходил к двери и заглядывал в щелку в приемную, то, махая руками, возвращался назад я брался за книгу. Дворецкий в другой раз пришел доложить Пьеру, что француз, привезший от графини письмо, очень желает видеть его хоть на минутку и что приходили от вдовы И. А. Баздеева просить принять книги, так как сама г жа Баздеева уехала в деревню.
– Ах, да, сейчас, подожди… Или нет… да нет, поди скажи, что сейчас приду, – сказал Пьер дворецкому.
Но как только вышел дворецкий, Пьер взял шляпу, лежавшую на столе, и вышел в заднюю дверь из кабинета. В коридоре никого не было. Пьер прошел во всю длину коридора до лестницы и, морщась и растирая лоб обеими руками, спустился до первой площадки. Швейцар стоял у парадной двери. С площадки, на которую спустился Пьер, другая лестница вела к заднему ходу. Пьер пошел по ней и вышел во двор. Никто не видал его. Но на улице, как только он вышел в ворота, кучера, стоявшие с экипажами, и дворник увидали барина и сняли перед ним шапки. Почувствовав на себя устремленные взгляды, Пьер поступил как страус, который прячет голову в куст, с тем чтобы его не видали; он опустил голову и, прибавив шагу, пошел по улице.
Из всех дел, предстоявших Пьеру в это утро, дело разборки книг и бумаг Иосифа Алексеевича показалось ему самым нужным.
Он взял первого попавшегося ему извозчика и велел ему ехать на Патриаршие пруды, где был дом вдовы Баздеева.
Беспрестанно оглядываясь на со всех сторон двигавшиеся обозы выезжавших из Москвы и оправляясь своим тучным телом, чтобы не соскользнуть с дребезжащих старых дрожек, Пьер, испытывая радостное чувство, подобное тому, которое испытывает мальчик, убежавший из школы, разговорился с извозчиком.
Извозчик рассказал ему, что нынешний день разбирают в Кремле оружие, и что на завтрашний народ выгоняют весь за Трехгорную заставу, и что там будет большое сражение.
Приехав на Патриаршие пруды, Пьер отыскал дом Баздеева, в котором он давно не бывал. Он подошел к калитке. Герасим, тот самый желтый безбородый старичок, которого Пьер видел пять лет тому назад в Торжке с Иосифом Алексеевичем, вышел на его стук.
– Дома? – спросил Пьер.
– По обстоятельствам нынешним, Софья Даниловна с детьми уехали в торжковскую деревню, ваше сиятельство.
– Я все таки войду, мне надо книги разобрать, – сказал Пьер.
– Пожалуйте, милости просим, братец покойника, – царство небесное! – Макар Алексеевич остались, да, как изволите знать, они в слабости, – сказал старый слуга.
Макар Алексеевич был, как знал Пьер, полусумасшедший, пивший запоем брат Иосифа Алексеевича.
– Да, да, знаю. Пойдем, пойдем… – сказал Пьер и вошел в дом. Высокий плешивый старый человек в халате, с красным носом, в калошах на босу ногу, стоял в передней; увидав Пьера, он сердито пробормотал что то и ушел в коридор.
– Большого ума были, а теперь, как изволите видеть, ослабели, – сказал Герасим. – В кабинет угодно? – Пьер кивнул головой. – Кабинет как был запечатан, так и остался. Софья Даниловна приказывали, ежели от вас придут, то отпустить книги.
Пьер вошел в тот самый мрачный кабинет, в который он еще при жизни благодетеля входил с таким трепетом. Кабинет этот, теперь запыленный и нетронутый со времени кончины Иосифа Алексеевича, был еще мрачнее.
Герасим открыл один ставень и на цыпочках вышел из комнаты. Пьер обошел кабинет, подошел к шкафу, в котором лежали рукописи, и достал одну из важнейших когда то святынь ордена. Это были подлинные шотландские акты с примечаниями и объяснениями благодетеля. Он сел за письменный запыленный стол и положил перед собой рукописи, раскрывал, закрывал их и, наконец, отодвинув их от себя, облокотившись головой на руки, задумался.