Що таке Docker та як він працює | nt.ua

Що таке Docker та як він працює

Березень 03, 2020 Docker Linux контейнеризація

Docker - це контейнерний платформа для Linux. Права на бренд належать софтверній компанії Docker. Inc з Сан-Франциско. Для стандартизації та розвитку використовується вільний фреймворк Moby Project. Сама платформа пропонується в двох редакціях. Docker Community Edition підтримується спільнотою та поширюється безкоштовно. Щоб скористатися цією редакцією, користувачу немає необхідності робити будь-які дії щодо отримання ліцензій. Docker Enterprise Edition підтримується та поширюється на комерційній основі. Ця редакція надає багато додаткових можливостей для адміністрування та безпечної роботи.

Docker написаний на мові програмування Go. Це потужна компільована багатопотокова мова, розроблена компанією Google. Вона використовується для розробки додатків, які будуть працювати на багатоядерних процесорах та розподілених системах.

Docker складається з декількох основних компонентів.

  • Docker Client забезпечує виконання команд з командного рядка docker CLI та взаємодію з Docker Daemon.
  • Docker Daemon або dockerd є програмним інтерфейсом API та забезпечує взаємодію з іншими додатками. Головні функціональні можливості реалізовані саме в Docker API.
  • Containerd або docker-containerd є супервізором контейнерів та використовується в командах start, stop та інших командах для управління контейнерами.
  • Shim або docker-containerd-shim реалізує контейнерну daemonless-модель, при якій контейнер може працювати незалежно від dockerd.
  • Runc або docker-runc забезпечує роботу контейнерів.

Docker використовує CGroup, механізм ядра операційної системи Linux, який управляє обчислювальними ресурсами процесора, мережі, пам'яті, системи введення та виведення, процесами та їх групами, а також оптимізує монтування файлових систем. Фактично, Docker є шаром управління віртуалізацією контейнерів, який здійснює свої функції через Docker API.

Спосіб розгортання Docker залежить від версії та типу дистрибутива, а також основної операційної системи. Наприклад, для Linux доцільно скористатися стандартним скриптом розгортання. І Windows, і macOS підтримують контейнерні Linux-платформи. Якщо Docker потрібен саме в цих операційних системах, потрібно скористатися відповідним дистрибутивом та інструментарієм командного рядка.

Docker - безпечна та стійка до відмов контейнерна платформа. Всі образи або контейнери працюють в мережі, їх IP-адреси перетворюються за методом NAT щодо основного хоста, при цьому публікуються тільки потрібні порти. Для безпечної комунікації з репозиторіями, наприклад, Docker Hub можуть застосовуватися сертифікати. Стійкість до відмов Docker-рішень забезпечується за рахунок кластеризації за технологією Swarm. Розроблено багато інструментів для моніторингу працездатності Docker.

Зазначимо, що альтернативи платформі Docker, наприклад, вільна платформа OpenShift, яка підтримується також і компаніями IBM та Red Hat, використовує схожі технологічні рішення.

Навчальний центр «Мережyі Технології» реалізує комплексні навчальні програми з контейнеризації та управління на платформі Docker.