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) — это его запущенный экземпляр.