Docker
Docker — це платформа, яка використовує віртуалізацію на рівні ОС для доставки програмного забезпечення в пакетах, які називаються контейнерами.
Docker дозволяє розробникам пакувати програми з усіма їхніми залежностями, бібліотеками та конфігураціями в контейнер. Цей контейнер ізольований від хост-операційної системи та інших контейнерів, забезпечуючи узгодженість у різних середовищах. Контейнери Docker легкі, портативні та ефективні, що робить їх ідеальними для сучасної розробки та розгортання програмного забезпечення.
Docker використовує контейнеризацію, яка є формою віртуалізації, що використовує ядро ОС хоста. На відміну від віртуальних машин, контейнери спільно використовують ядро ОС хоста, що робить їх більш ефективними з точки зору ресурсів і швидше запускаються. Цей підхід дозволяє розробникам послідовно створювати, розповсюджувати та запускати програми в різних середовищах, від машин розробки до виробничих серверів.
graph LR
Center["Docker"]:::main
Pre_operating_systems["operating-systems"]:::pre --> Center
click Pre_operating_systems "/terms/operating-systems"
Rel_kubernetes["kubernetes"]:::related -.-> Center
click Rel_kubernetes "/terms/kubernetes"
Rel_microservices["microservices"]:::related -.-> Center
click Rel_microservices "/terms/microservices"
Rel_devops["devops"]:::related -.-> Center
click Rel_devops "/terms/devops"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Перевірка знань
🧒 Простими словами
📦 Уявіть, що ви складаєте іграшковий конструктор. Щоб він не розвалився під час переїзду, ви кладете його в спеціальну міцну коробку, де є все необхідне для гри. Docker — це така 'магічна коробка' для комп'ютерних програм, яку можна перенести куди завгодно, і програма всередині завжди працюватиме правильно.
🤓 Expert Deep Dive
Технічна база Docker базується на функціях ядра Linux: Namespaces (ізоляція процесів) та cgroups (обмеження ресурсів). Docker використовує пошарову файлову систему (UnionFS), що дозволяє економити місце на диску, спільно використовуючи ідентичні шари між різними образами. Образ (Image) — це незмінний шаблон, а контейнер (Container) — це його запущений екземпляр.