Давайте познайомимося з архітектурою Docker та її основними компонентами.
Я припускаю, що ви маєте базове уявлення про Docker. Якщо ні, ви можете звернутися до цієї попередньої статті.
Думаю, ви розумієте важливість Docker для DevOps. Тепер за цим фантастичним інструментом має стояти дивовижна, добре продумана архітектура. чи не так?
Але перш ніж говорити про це, дозвольте мені продемонструвати попередні та поточні системи віртуалізації.
Традиційна та віртуалізація нового покоління
Раніше ми створювали віртуальні машини, і кожна віртуальна машина мала ОС, яка займала багато місця та робила її важкою.
Тепер у випадку контейнера докерів у вас є одна ОС, а ресурси спільно використовуються між контейнерами. Тому він легкий і завантажується за лічені секунди.
Архітектура Docker
Нижче наведена проста схема архітектури Docker.
Дозвольте мені пояснити вам компоненти архітектури докерів.
Двигун Docker
Це основна частина всієї системи Docker. Docker Engine — це програма, яка відповідає архітектурі клієнт-сервер. Він встановлений на головній машині. У Docker Engine є три компоненти:
- Сервер: це демон докерів під назвою dockerd. Він може створювати зображення докерів і керувати ними. Контейнери, мережі та ін.
- Rest API: використовується для вказівок докер-демону, що робити.
- Інтерфейс командного рядка (CLI): це клієнт, який використовується для введення команд докера.
Клієнт Docker
Користувачі Docker можуть взаємодіяти з Docker через клієнт. Коли виконуються будь-які команди докерів, клієнт надсилає їх демону докерів, який їх виконує. Docker API використовується командами Docker. Клієнт Docker може спілкуватися з більш ніж одним демоном.
Реєстри докерів
Це місце, де зберігаються зображення Docker. Це може бути публічний реєстр докерів або приватний реєстр докерів. Docker Hub — це місце за замовчуванням образів докерів, публічний реєстр його сховищ. Ви також можете створити та запустити власний приватний реєстр.
Коли ви виконуєте команди docker pull або docker run, необхідний образ докера витягується з налаштованого реєстру. Коли ви виконуєте команду docker push, образ докера зберігається в налаштованому реєстрі.
Об’єкти Docker
Коли ви працюєте з Docker, ви використовуєте зображення, контейнери, томи, мережі; все це об’єкти Docker.
Зображення
Зображення докерів — це шаблони лише для читання з інструкціями щодо створення контейнера докерів. Образ Docker можна отримати з концентратора Docker і використовувати як є, або ви можете додати додаткові інструкції до базового образу та створити новий і змінений образ Docker. Ви також можете створювати власні зображення докерів за допомогою файлу докерів. Створіть докер-файл із усіма інструкціями щодо створення контейнера та запустіть його; він створить власний образ докера.
Зображення 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 — це перехід, через який спілкуються всі ізольовані контейнери. У докері є в основному п’ять мережевих драйверів:
Висновок
Сподіваюся, це дасть вам уявлення про архітектуру Docker та її важливі компоненти. Перегляньте Docker, щоб дізнатися більше, а якщо вам цікаво отримати практичне навчання, подивіться це Курс докерської майстерності.
Вам сподобалось читати статтю? Як щодо того, щоб поділитися зі світом?