Давайте ознайомимось з архітектурою Docker та її основними компонентами.
Я припускаю, що ви розумієте Докер. Якщо ні, ви можете посилатися на попередню статтю.
Розуміння Докер для початківця – технологія контейнерів
Я вважаю, ви розумієте важливість Docker в DevOps. Тепер за цим фантастичним інструментом має бути дивовижна, продумана архітектура. Хіба це не так?
Але перш ніж я поговорю про це, дозвольте продемонструвати попередню та сучасну систему віртуалізації.
Contents
Традиційна проти віртуалізації нового покоління
Раніше ми створювали віртуальні машини, і кожен VM мав ОС, яка займала багато місця і зробила її важкою.
Тепер у випадку контейнера докер у вас є одна ОС, а ресурси поділяються між контейнерами. Отже, він легкий і чоботи за лічені секунди.
Докерська архітектура
Нижче наведена проста схема архітектури Докера.
Дозвольте мені пояснити вам компоненти архітектури докера.
Докер двигуна
Це основна частина всієї системи Докера. Docker Engine – це додаток, який випливає нижче архітектура клієнт-сервер. Він встановлюється на хост-машині. У Docker Engine є три компоненти:
- Сервер: Саме докер називається демоном докерд. Він може створювати та керувати зображеннями докера. Контейнери, мережі тощо.
- API відпочинку: Він використовується для вказівки демона докера, що робити.
- Інтерфейс командного рядка (CLI): Це клієнт, який використовується для введення докерних команд.
Клієнт Docker
Користувачі Docker можуть взаємодіяти з Docker через клієнта. Коли будь-які докерські команди виконуються, клієнт надсилає їх демону dockerd, який виконує їх. Docker API використовується командами Docker. Клієнт Docker може спілкуватися з більш ніж одним демоном.
Докерські реєстри
Це місце, де зберігаються зображення Docker. Це може бути державний реєстр докерів або приватний реєстр докерів. Docker Hub – це місце за замовчуванням зображень докера, публічний реєстр магазинів. Ви також можете створити і запустити власний приватний реєстр.
Коли ви виконуєте команди натягування докера або запуску докера, необхідне зображення докера витягується з налаштованого реєстру. Коли ви виконуєте команду push docker, зображення докера зберігається в налаштованому реєстрі.
Докерські об’єкти
Під час роботи з Docker ви використовуєте зображення, контейнери, томи, мережі; все це об’єкти Докера.
Зображення
Зображення Docker – це шаблони лише для читання з інструкціями по створенню докерного контейнера. Зображення Docker можна витягнути з концентратора Docker і використовувати як є, або ви можете додати додаткові інструкції до базового зображення та створити нове і змінене зображення докера. Ви також можете створювати власні зображення докера, також використовуючи dockerfile. Створіть докер-файл із усіма інструкціями, щоб створити контейнер і запустити його; це створить ваш власний образ докера.
Зображення Docker має базовий шар, який доступний лише для читання, і верхній шар може бути записаний. Коли ви редагуєте докер-файл і відновлюєте його, лише верхня частина модифікується у верхньому шарі.
Контейнери
Після запуску зображення докера він створює контейнер докера. Усі додатки та їх середовище працюють у цьому контейнері. Ви можете використовувати API Docker або CLI для запуску, зупинки, видалення докерного контейнера.
Нижче наведена прикладна команда для запуску контейнера докера ubuntu:
docker run -i -t ubuntu / bin / bash
Обсяги
Дані, що зберігаються докер і використовуються контейнерами Docker, зберігаються в томах. Їм повністю керує докер через docker CLI або Docker API. Томи працюють як в Windows, так і в Linux. Замість того, щоб зберігати дані в шарі, який можна записати, це завжди хороший варіант використовувати томи для цього. Вміст тома існує поза життєвим циклом контейнера, тому використання обсягу не збільшує розмір контейнера.
Ви можете використовувати прапор -v або –mount для запуску контейнера з гучністю. У цій команді зразка ви використовуєте об’єм geekvolume з контейнером geekflare.
docker run -d – ім’я geekflare -v geekvolume: / app nginx: останнє
Мережі
Мережа Docker – це пасаж, через який спілкуються всі ізольовані контейнери. У докері в основному п’ять мережевих драйверів:
- Міст: Це мережевий драйвер за замовчуванням для контейнера. Ви використовуєте цю мережу, коли ваша програма працює на автономних контейнерах, тобто декількох контейнерах, що спілкуються з одним хостом докера.
- Господар: Цей драйвер видаляє мережеву ізоляцію між контейнерами докера та хостом докера. Він використовується, коли не потрібно мережевої ізоляції між хостом і контейнером.
- Накладення: Ця мережа дає змогу ройовим службам спілкуватися один з одним. Він використовується, коли контейнери працюють на різних хокерах Docker або коли ройові служби формуються за допомогою декількох додатків.
- Жоден: Цей драйвер відключає всі мережі.
- macvlan: Цей драйвер призначає mac-адресу контейнерам, щоб вони виглядали як фізичні пристрої. Трафік направляється між контейнерами через їх mac-адреси. Ця мережа використовується, коли ви хочете, щоб контейнери виглядали як фізичний пристрій, наприклад, під час міграції налаштування VM.
Висновок
Сподіваюсь, це дає вам уявлення про архітектуру Докера та його основні компоненти. Перейдіть по Докеру, щоб дізнатися більше, і якщо вам цікаво пройти практичну підготовку, то перевірте це Курс докерського майстерності.
МЕТИ:
Докер