Docker — інструментарій для управління ізольованими Linux-контейнерами. Docker доповнює інструментарій LXC більш високорівневим API, що дозволяє керувати контейнерами на рівні ізоляції окремих процесів. Зокрема, Docker дозволяє не переймаючись вмістом контейнера запускати довільні процеси в режимі ізоляції і потім переносити і клонувати сформовані для даних процесів контейнери на інші сервери, беручи на себе всю роботу зі створення, обслуговування і підтримки контейнерів.
Тип | віртуалізація рівня операційної системи |
---|---|
Автор | Solomon Hykes |
Розробник | Docker, Inc. |
Перший випуск | 13 березня 2013 |
Стабільний випуск | 1.13 (19 січня, 2017 ) |
Платформа | x86-64 з сучасними ядрами Linux |
Операційна система | Linux |
Мова програмування | Go |
Ліцензія | Apache License 2.0 |
Репозиторій | github.com/moby/moby |
Вебсайт | www.docker.com |
|
Початковий код Docker написаний мовою Go і поширюється під ліцензією Apache 2.0. Інструментарій базується на застосуванні вбудованих в ядро Linux штатних механізмів ізоляції на основі просторів імен (namespaces) і груп управління (cgroups). Для створення контейнерів використовуються скрипти lxc. Для формування контейнера досить завантажити базовий образ оточення (команда docker pull base
), після чого можна запускати в ізольованих оточеннях довільні програми (наприклад, для запуску bash можна виконати docker run -i -t base/bin/bash).
Основні можливості
Основні можливості Docker:
- Можливість розміщення в ізольованому оточенні різнорідної начинки, що включає різні комбінації виконуваних файлів, бібліотек, файлів конфігурації, скриптів, файлів jar, gem, tar тощо
- Підтримка роботи на будь-якому комп'ютері на базі архітектури x86_64 з системою на базі ядра Linux, починаючи від ноутбуків, закінчуючи серверами та віртуальними машинами. Можливість роботи поверх немодифікованих сучасних ядер Linux (без накладення патчів) і в штатних оточеннях всіх великих дистрибутивів Linux, включаючи Fedora, RHEL, Ubuntu, Debian, SUSE, Gentoo і Arch;
- Використання легковагих контейнерів для ізоляції процесів від інших процесів і основної системи.
- Оскільки контейнери використовують свою власну самодостатню файлову систему, не важливо де, коли і в якому оточенні вони запускаються.
- Ізоляція на рівні файлової системи: кожен процес виконується у повністю окремій кореневій ФС;
- Ізоляція ресурсів: споживання системних ресурсів, таких як витрата пам'яті і навантаження на CPU, можуть обмежуватися окремо для кожного контейнера з використанням cgroups;
- Ізоляція на рівні мережі: кожен ізольований процес має доступ тільки до пов'язаного з контейнером мережевого простору імен, включаючи віртуальний мережевий інтерфейс і прив'язані до нього IP-адреси;
- Коренева файлова система для контейнерів створюється з використанням механізму copy-on-write (окремо зберігаються тільки змінені і нові дані), що дозволяє прискорити розгортання, знижує витрату пам'яті і економить дисковий простір;
- Всі стандартні потоки (stdout/stderr) кожного виконуваного в контейнері процесу накопичуються і зберігаються у вигляді логу;
- Змінена файлова система одного контейнера може використовуватися як основа для формування нових базових образів і створення інших контейнерів, без необхідності оформлення шаблонів або ручного налаштування складу образів;
- Можливість використання інтерактивної командної оболонки: до стандартного вводу будь-якого контейнера може бути прив'язаний псевдо-tty для запуску shell.
- Підтримка використання різних систем зберігання, які можуть підключатися як плаґіни. Серед підтримуваних драйверів зберігання заявлені [en], [en] (використовуються снапшоти LVM), vfs (на основі копіювання директорій) і Btrfs. Очікується поява драйверів для ZFS, Gluster і Ceph;
- Можливість створення контейнерів, що містять складні програмні стеки, через зв'язування між собою вже існуючих контейнерів, що містять складові частини формованого стека. Зв'язування здійснюється не через злиття вмісту, а через забезпечення взаємодії між контейнерами (створюється мережевий тунель).
Інтеграція
Докер може бути інтегрований із наступними інструментами:
Елементи Docker
Docker складається з двох процесів:
- Демона Docker, який запускається на гостьовій машині (якщо це Лінукс), або всередині VirtualBox середовища boot2docker (якщо це Windows або OS X).
- Клієнта, через який можна взаємодіяти з демоном.
- Образ Docker (англ. Docker image) — містить операційну систему, застосунок і всі його залежності. Образи в Docker складаються з шарів. Якщо нам треба образ з вебсервером, то ми беремо за основу образ з дистрибутивом операційної системи, додаємо залежність — вебсервер, і записуємо це як новий образ, який матиме два шари — один з ОС, наступний з вебсервером. Образами можна обмінюватись через DockerHub.
- Контейнер Docker — це запущений образ. Контейнери Docker можна запускати, спиняти, переміщувати і видаляти. Також можна зробити
docker commit
контейнера, що створить образ з поточного стану контейнера.
Docker Hub
Разом з першою стабільною версією, що вийшла 13 березня 2013, була представлена нова відкрита платформа для поширення застосунків. Таким чином, Docker виступає в ролі платформи, до складу якої входять: рушій Docker Engine, runtime для контейнерів, інструментарій для створення пакунків, API і хмарний сервіс Docker Hub. Крім того, введено в дію офіційні репозиторії застосунків, з яких можна завантажити готові образи оточень для запуску популярних застосунків, таких як NodeJS, MongoDB, MySQL, Nginx, Redis і WordPress.
Docker Hub являє собою хмарний сервіс для організації спільної роботи, автоматизації робочого процесу, створення, поширення і запуску адаптованих для Docker застосунків. По суті Docker Hub надає набір сервісів, таких як поширення образу контейнера, управління змінами, організація взаємодії між користувачами і розробниками, супровід життєвого циклу, інтеграція зі сторонніми службами. Модель монетизації сервісу Docker Hub аналогічна GitHub — робота над публічними проектами безкоштовна і лише при необхідності використання приватних репозиторіїв стягується оплата.
Основні компоненти Docker Hub:
- Інтегрована консоль для управління користувачами, групами, контейнерами, репозиторіями і робочими процесами
- Реєстр, що надає понад 14 тисяч ізольованих застосунків, які можна використовувати як цеглини для створення власних застосунків
- Інструменти для спільної роботи, що дозволяють користувачам обмінюватися своїми застосунками через публічні та приватні репозиторії, і запрошувати інших людей взяти участь в розробці
- Автоматизований складальний сервіс, що дозволяє забезпечити автоматичне перескладання та оновлення застосунків для підтримки образів в актуальному вигляді. Можна організувати оновлення образу після появи змін коду програми в GitHub або Bitbucket
- Сервіс Webhooks, що дозволяє користувачеві забезпечити управління з сторонніх систем і автоматизувати виконання типових робіт через RESTful API
- Docker Hub API, що включає сервіс автентифікації і засоби інтеграції з зовнішніми службами.
Відзнаки
Відкритий інструментарій для управління ізольованими Linux-контейнерами Docker став лауреатом премії JAX Innovation Awards 2014 в категорії «Найбільш інноваційна відкрита технологія».
Див. також
Виноски
- https://github.com/docker/cli/blob/master/LICENSE
- . Docker Blog. Docker, Inc. 10 березня 2014. Архів оригіналу за 21 лютого 2015. Процитовано 20 січня 2015.(англ.) Наведено за англійською вікіпедією.
- Garth Schulte What is Docker? [ 6 березня 2017 у Wayback Machine.] YouTube
- . Архів оригіналу за 10 червня 2014. Процитовано 10 червня 2014.
- . Архів оригіналу за 12 червня 2014. Процитовано 10 червня 2014.
- . Архів оригіналу за 9 травня 2014. Процитовано 18 травня 2014.
- Docker отмечен премией JAX Innovation Awards 2014 [ 18 травня 2014 у Wayback Machine.] // opennet.ru 18.05.2014
Посилання
- Офіційний сайт
- What is Docker? [ 29 липня 2014 у Wayback Machine.] - Solomon Hykes, YouTube
- Source code repository [ 5 грудня 2013 у Wayback Machine.]
- Multi-tenancy using Docker [ 10 листопада 2014 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Docker instrumentarij dlya upravlinnya izolovanimi Linux kontejnerami Docker dopovnyuye instrumentarij LXC bilsh visokorivnevim API sho dozvolyaye keruvati kontejnerami na rivni izolyaciyi okremih procesiv Zokrema Docker dozvolyaye ne perejmayuchis vmistom kontejnera zapuskati dovilni procesi v rezhimi izolyaciyi i potim perenositi i klonuvati sformovani dlya danih procesiv kontejneri na inshi serveri beruchi na sebe vsyu robotu zi stvorennya obslugovuvannya i pidtrimki kontejneriv DockerTipvirtualizaciya rivnya operacijnoyi sistemiAvtorSolomon HykesRozrobnikDocker Inc Pershij vipusk13 bereznya 2013Stabilnij vipusk1 13 19 sichnya 2017 7 rokiv tomu 2017 01 19 Platformax86 64 z suchasnimi yadrami LinuxOperacijna sistemaLinuxMova programuvannyaGoLicenziyaApache License 2 0Repozitorijgithub com moby mobyVebsajtwww docker com Mediafajli u Vikishovishi Pochatkovij kod Docker napisanij movoyu Go i poshiryuyetsya pid licenziyeyu Apache 2 0 Instrumentarij bazuyetsya na zastosuvanni vbudovanih v yadro Linux shtatnih mehanizmiv izolyaciyi na osnovi prostoriv imen namespaces i grup upravlinnya cgroups Dlya stvorennya kontejneriv vikoristovuyutsya skripti lxc Dlya formuvannya kontejnera dosit zavantazhiti bazovij obraz otochennya komanda docker pull base pislya chogo mozhna zapuskati v izolovanih otochennyah dovilni programi napriklad dlya zapusku bash mozhna vikonati docker run i t base bin bash Osnovni mozhlivostiDocker mozhe vikoristovuvati dekilka interfejsiv dlya dostupu zasobiv virtualizaci yadra Linux Osnovni mozhlivosti Docker Mozhlivist rozmishennya v izolovanomu otochenni riznoridnoyi nachinki sho vklyuchaye rizni kombinaciyi vikonuvanih fajliv bibliotek fajliv konfiguraciyi skriptiv fajliv jar gem tar tosho Pidtrimka roboti na bud yakomu komp yuteri na bazi arhitekturi x86 64 z sistemoyu na bazi yadra Linux pochinayuchi vid noutbukiv zakinchuyuchi serverami ta virtualnimi mashinami Mozhlivist roboti poverh nemodifikovanih suchasnih yader Linux bez nakladennya patchiv i v shtatnih otochennyah vsih velikih distributiviv Linux vklyuchayuchi Fedora RHEL Ubuntu Debian SUSE Gentoo i Arch Vikoristannya legkovagih kontejneriv dlya izolyaciyi procesiv vid inshih procesiv i osnovnoyi sistemi Oskilki kontejneri vikoristovuyut svoyu vlasnu samodostatnyu fajlovu sistemu ne vazhlivo de koli i v yakomu otochenni voni zapuskayutsya Izolyaciya na rivni fajlovoyi sistemi kozhen proces vikonuyetsya u povnistyu okremij korenevij FS Izolyaciya resursiv spozhivannya sistemnih resursiv takih yak vitrata pam yati i navantazhennya na CPU mozhut obmezhuvatisya okremo dlya kozhnogo kontejnera z vikoristannyam cgroups Izolyaciya na rivni merezhi kozhen izolovanij proces maye dostup tilki do pov yazanogo z kontejnerom merezhevogo prostoru imen vklyuchayuchi virtualnij merezhevij interfejs i priv yazani do nogo IP adresi Koreneva fajlova sistema dlya kontejneriv stvoryuyetsya z vikoristannyam mehanizmu copy on write okremo zberigayutsya tilki zmineni i novi dani sho dozvolyaye priskoriti rozgortannya znizhuye vitratu pam yati i ekonomit diskovij prostir Vsi standartni potoki stdout stderr kozhnogo vikonuvanogo v kontejneri procesu nakopichuyutsya i zberigayutsya u viglyadi logu Zminena fajlova sistema odnogo kontejnera mozhe vikoristovuvatisya yak osnova dlya formuvannya novih bazovih obraziv i stvorennya inshih kontejneriv bez neobhidnosti oformlennya shabloniv abo ruchnogo nalashtuvannya skladu obraziv Mozhlivist vikoristannya interaktivnoyi komandnoyi obolonki do standartnogo vvodu bud yakogo kontejnera mozhe buti priv yazanij psevdo tty dlya zapusku shell Pidtrimka vikoristannya riznih sistem zberigannya yaki mozhut pidklyuchatisya yak plagini Sered pidtrimuvanih drajveriv zberigannya zayavleni en en vikoristovuyutsya snapshoti LVM vfs na osnovi kopiyuvannya direktorij i Btrfs Ochikuyetsya poyava drajveriv dlya ZFS Gluster i Ceph Mozhlivist stvorennya kontejneriv sho mistyat skladni programni steki cherez zv yazuvannya mizh soboyu vzhe isnuyuchih kontejneriv sho mistyat skladovi chastini formovanogo steka Zv yazuvannya zdijsnyuyetsya ne cherez zlittya vmistu a cherez zabezpechennya vzayemodiyi mizh kontejnerami stvoryuyetsya merezhevij tunel Integraciya Doker mozhe buti integrovanij iz nastupnimi instrumentami Ansible Jenkins Kubernetes Microsoft Azure OpenStack Nova Puppet Salt Travis CI Vagrant VMware vSphereElementi DockerDocker skladayetsya z dvoh procesiv Demona Docker yakij zapuskayetsya na gostovij mashini yaksho ce Linuks abo vseredini VirtualBox seredovisha boot2docker yaksho ce Windows abo OS X Kliyenta cherez yakij mozhna vzayemodiyati z demonom Obraz Docker angl Docker image mistit operacijnu sistemu zastosunok i vsi jogo zalezhnosti Obrazi v Docker skladayutsya z shariv Yaksho nam treba obraz z vebserverom to mi beremo za osnovu obraz z distributivom operacijnoyi sistemi dodayemo zalezhnist vebserver i zapisuyemo ce yak novij obraz yakij matime dva shari odin z OS nastupnij z vebserverom Obrazami mozhna obminyuvatis cherez DockerHub Kontejner Docker ce zapushenij obraz Kontejneri Docker mozhna zapuskati spinyati peremishuvati i vidalyati Takozh mozhna zrobiti docker commit kontejnera sho stvorit obraz z potochnogo stanu kontejnera Docker HubRazom z pershoyu stabilnoyu versiyeyu sho vijshla 13 bereznya 2013 bula predstavlena nova vidkrita platforma dlya poshirennya zastosunkiv Takim chinom Docker vistupaye v roli platformi do skladu yakoyi vhodyat rushij Docker Engine runtime dlya kontejneriv instrumentarij dlya stvorennya pakunkiv API i hmarnij servis Docker Hub Krim togo vvedeno v diyu oficijni repozitoriyi zastosunkiv z yakih mozhna zavantazhiti gotovi obrazi otochen dlya zapusku populyarnih zastosunkiv takih yak NodeJS MongoDB MySQL Nginx Redis i WordPress Docker Hub yavlyaye soboyu hmarnij servis dlya organizaciyi spilnoyi roboti avtomatizaciyi robochogo procesu stvorennya poshirennya i zapusku adaptovanih dlya Docker zastosunkiv Po suti Docker Hub nadaye nabir servisiv takih yak poshirennya obrazu kontejnera upravlinnya zminami organizaciya vzayemodiyi mizh koristuvachami i rozrobnikami suprovid zhittyevogo ciklu integraciya zi storonnimi sluzhbami Model monetizaciyi servisu Docker Hub analogichna GitHub robota nad publichnimi proektami bezkoshtovna i lishe pri neobhidnosti vikoristannya privatnih repozitoriyiv styaguyetsya oplata Osnovni komponenti Docker Hub Integrovana konsol dlya upravlinnya koristuvachami grupami kontejnerami repozitoriyami i robochimi procesami Reyestr sho nadaye ponad 14 tisyach izolovanih zastosunkiv yaki mozhna vikoristovuvati yak ceglini dlya stvorennya vlasnih zastosunkiv Instrumenti dlya spilnoyi roboti sho dozvolyayut koristuvacham obminyuvatisya svoyimi zastosunkami cherez publichni ta privatni repozitoriyi i zaproshuvati inshih lyudej vzyati uchast v rozrobci Avtomatizovanij skladalnij servis sho dozvolyaye zabezpechiti avtomatichne pereskladannya ta onovlennya zastosunkiv dlya pidtrimki obraziv v aktualnomu viglyadi Mozhna organizuvati onovlennya obrazu pislya poyavi zmin kodu programi v GitHub abo Bitbucket Servis Webhooks sho dozvolyaye koristuvachevi zabezpechiti upravlinnya z storonnih sistem i avtomatizuvati vikonannya tipovih robit cherez RESTful API Docker Hub API sho vklyuchaye servis avtentifikaciyi i zasobi integraciyi z zovnishnimi sluzhbami VidznakiVidkritij instrumentarij dlya upravlinnya izolovanimi Linux kontejnerami Docker stav laureatom premiyi JAX Innovation Awards 2014 v kategoriyi Najbilsh innovacijna vidkrita tehnologiya Div takozhDevOps Mikroservisi Virtualizaciya na rivni operacijnoyi sistemiVinoskihttps github com docker cli blob master LICENSE Docker Blog Docker Inc 10 bereznya 2014 Arhiv originalu za 21 lyutogo 2015 Procitovano 20 sichnya 2015 angl Navedeno za anglijskoyu vikipediyeyu Garth Schulte What is Docker 6 bereznya 2017 u Wayback Machine YouTube Arhiv originalu za 10 chervnya 2014 Procitovano 10 chervnya 2014 Arhiv originalu za 12 chervnya 2014 Procitovano 10 chervnya 2014 Arhiv originalu za 9 travnya 2014 Procitovano 18 travnya 2014 Docker otmechen premiej JAX Innovation Awards 2014 18 travnya 2014 u Wayback Machine opennet ru 18 05 2014PosilannyaOficijnij sajt What is Docker 29 lipnya 2014 u Wayback Machine Solomon Hykes YouTube Source code repository 5 grudnya 2013 u Wayback Machine Multi tenancy using Docker 10 listopada 2014 u Wayback Machine