Архітектура Docker та її компоненти для початківців

Давайте познайомимося з архітектурою Docker та її основними компонентами.

Я припускаю, що ви маєте базове уявлення про Docker. Якщо ні, ви можете звернутися до цієї попередньої статті.

Думаю, ви розумієте важливість Docker для DevOps. Тепер за цим фантастичним інструментом має стояти дивовижна, добре продумана архітектура. чи не так?

Але перш ніж говорити про це, дозвольте мені продемонструвати попередні та поточні системи віртуалізації.

Традиційна та віртуалізація нового покоління

Раніше ми створювали віртуальні машини, і кожна віртуальна машина мала ОС, яка займала багато місця та робила її важкою.

Тепер у випадку контейнера докерів у вас є одна ОС, а ресурси спільно використовуються між контейнерами. Тому він легкий і завантажується за лічені секунди.

Архітектура Docker

Нижче наведена проста схема архітектури Docker.

Дозвольте мені пояснити вам компоненти архітектури докерів.

Двигун Docker

Це основна частина всієї системи Docker. Docker Engine — це програма, яка відповідає архітектурі клієнт-сервер. Він встановлений на головній машині. У Docker Engine є три компоненти:

  • Сервер: це демон докерів під назвою dockerd. Він може створювати зображення докерів і керувати ними. Контейнери, мережі та ін.
  • Rest API: використовується для вказівок докер-демону, що робити.
  • Інтерфейс командного рядка (CLI): це клієнт, який використовується для введення команд докера.
  Як змінити організатора наради в Zoom

Клієнт Docker

Користувачі Docker можуть взаємодіяти з Docker через клієнт. Коли виконуються будь-які команди докерів, клієнт надсилає їх демону докерів, який їх виконує. Docker API використовується командами Docker. Клієнт Docker може спілкуватися з більш ніж одним демоном.

Реєстри докерів

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

Коли ви виконуєте команди docker pull або docker run, необхідний образ докера витягується з налаштованого реєстру. Коли ви виконуєте команду docker push, образ докера зберігається в налаштованому реєстрі.

Об’єкти Docker

Коли ви працюєте з Docker, ви використовуєте зображення, контейнери, томи, мережі; все це об’єкти Docker.

Зображення

Зображення докерів — це шаблони лише для читання з інструкціями щодо створення контейнера докерів. Образ Docker можна отримати з концентратора Docker і використовувати як є, або ви можете додати додаткові інструкції до базового образу та створити новий і змінений образ Docker. Ви також можете створювати власні зображення докерів за допомогою файлу докерів. Створіть докер-файл із усіма інструкціями щодо створення контейнера та запустіть його; він створить власний образ докера.

  Виправте розширення перегляду сітки Google Meet

Зображення Docker має базовий рівень, який доступний лише для читання, а верхній шар можна писати. Коли ви редагуєте докер-файл і перебудовуєте його, лише змінена частина перебудовується на верхньому рівні.

Контейнери

Після запуску образу докера створюється контейнер докера. Усі програми та їх середовище працюють у цьому контейнері. Ви можете використовувати Docker API або CLI, щоб запускати, зупиняти, видаляти контейнер докерів.

Нижче наведено приклад команди для запуску контейнера докерів ubuntu:

docker run -i -t ubuntu /bin/bash

Обсяги

Постійні дані, створені докером і використані контейнерами Docker, зберігаються в томах. Ними повністю керує докер за допомогою докерського CLI або Docker API. Томи працюють як у контейнерах Windows, так і в Linux. Замість того, щоб зберігати дані в доступному для запису шарі контейнера, завжди краще використовувати для них томи. Вміст тома існує поза життєвим циклом контейнера, тому використання обсягу не збільшує розмір контейнера.

Ви можете використовувати прапорець -v або –mount для запуску контейнера з томом. У цьому прикладі команди ви використовуєте том geekvolume із контейнером techukraine.net.

docker run -d --name techukraine.net  -v geekvolume:/app nginx:latest

мережі

Мережа Docker — це перехід, через який спілкуються всі ізольовані контейнери. У докері є в основному п’ять мережевих драйверів:

  9 найкращих вертикальних моніторів для підвищення продуктивності
  • Bridge: це стандартний мережевий драйвер для контейнера. Ви використовуєте цю мережу, коли ваша програма працює в автономних контейнерах, тобто кілька контейнерів, які спілкуються з тим самим хостом докера.
  • Хост: цей драйвер усуває мережеву ізоляцію між контейнерами докерів і хостом докерів. Він використовується, коли вам не потрібна мережева ізоляція між хостом і контейнером.
  • Накладення: ця мережа дозволяє службам роя спілкуватися одна з одною. Він використовується, коли контейнери працюють на різних хостах Docker або коли служби роя створюються кількома програмами.
  • Немає: цей драйвер вимикає всі мережі.
  • macvlan: цей драйвер призначає mac-адресу контейнерам, щоб вони виглядали як фізичні пристрої. Трафік направляється між контейнерами через їхні mac-адреси. Ця мережа використовується, коли ви хочете, щоб контейнери виглядали як фізичні пристрої, наприклад, під час міграції налаштувань віртуальної машини.
  • Висновок

    Сподіваюся, це дасть вам уявлення про архітектуру Docker та її важливі компоненти. Перегляньте Docker, щоб дізнатися більше, а якщо вам цікаво отримати практичне навчання, подивіться це Курс докерської майстерності.

    Вам сподобалось читати статтю? Як щодо того, щоб поділитися зі світом?