Docker архитектура и нейните компоненти за начинаещи

Нека се запознаем с Docker архитектурата и нейните основни компоненти.

Предполагам, че имате основни познания за Docker. Ако не, можете да се обърнете към тази предишна статия.

Вярвам, че разбирате важността на Docker в DevOps. Сега зад този фантастичен инструмент трябва да има невероятна, добре обмислена архитектура. не е ли

Но преди да говоря за това, позволете ми да покажа предишните и настоящите системи за виртуализация.

Традиционна виртуализация срещу ново поколение

По-рано създавахме виртуални машини и всяка виртуална машина имаше операционна система, която заемаше много място и я правеше тежка.

Сега в случая на докер контейнера имате една единствена операционна система и ресурсите се споделят между контейнерите. Поради това е лек и се зарежда за секунди.

Докер архитектура

По-долу е простата диаграма на Docker архитектура.

Нека ви обясня компонентите на докер архитектурата.

Докер двигател

Това е основната част от цялата система Docker. Docker Engine е приложение, което следва архитектурата клиент-сървър. Той е инсталиран на хост машината. Има три компонента в Docker Engine:

  • Сървър: Това е докер демонът, наречен dockerd. Може да създава и управлява докер изображения. Контейнери, мрежи и др.
  • Rest API: Използва се за инструктиране на докер демон какво да прави.
  • Интерфейс на командния ред (CLI): Това е клиент, който се използва за въвеждане на докер команди.
  Как да инсталирате Open Snitch на Ubuntu

Докер клиент

Потребителите на Docker могат да взаимодействат с Docker чрез клиент. Когато се изпълнят някакви докер команди, клиентът ги изпраща на докер демон, който ги изпълнява. Docker API се използва от Docker команди. Docker клиентът може да комуникира с повече от един демон.

Докер регистри

Това е мястото, където се съхраняват Docker изображенията. Това може да бъде публичен докер регистър или частен докер регистър. Docker Hub е мястото по подразбиране за докер изображения, публичният регистър на неговите магазини. Можете също да създадете и стартирате свой собствен частен регистър.

Когато изпълнявате команди за изтегляне или изпълнение на докер, необходимото изображение на докер се изтегля от конфигурирания регистър. Когато изпълните командата за натискане на докер, изображението на докера се съхранява в конфигурирания регистър.

Докер обекти

Когато работите с Docker, използвате изображения, контейнери, томове, мрежи; всичко това са обекти на Docker.

Изображения

Докер изображенията са шаблони само за четене с инструкции за създаване на докер контейнер. Изображението на Docker може да бъде изтеглено от център на Docker и да се използва така, както е, или можете да добавите допълнителни инструкции към основното изображение и да създадете ново и модифицирано изображение на Docker. Можете също да създавате свои собствени докер изображения, като използвате докер файл. Създайте докер файл с всички инструкции за създаване на контейнер и го стартирайте; ще създаде вашето персонализирано докер изображение.

  Вашият Microsoft Office все още получава актуализации за защита?

Изображението на Docker има основен слой, който е само за четене, а на горния слой може да се пише. Когато редактирате докер файл и го изграждате отново, само модифицираната част се изгражда отново в горния слой.

Контейнери

След като стартирате докер изображение, то създава докер контейнер. Всички приложения и тяхната среда работят в този контейнер. Можете да използвате Docker API или CLI, за да стартирате, спрете, изтриете докер контейнер.

По-долу е примерна команда за стартиране на докер контейнер на ubuntu:

docker run -i -t ubuntu /bin/bash

Обеми

Постоянните данни, генерирани от Docker и използвани от Docker контейнери, се съхраняват в Volumes. Те се управляват изцяло от docker чрез docker CLI или Docker API. Томовете работят както на Windows, така и на Linux контейнери. Вместо да съхранявате данни в слоя за запис на контейнер, винаги е добра опция да използвате томове за него. Съдържанието на обема съществува извън жизнения цикъл на контейнера, така че използването на обем не увеличава размера на контейнера.

Можете да използвате флаг -v или –mount, за да стартирате контейнер с том. В тази примерна команда използвате том geekvolume с pctechbg.net контейнер.

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

мрежи

Docker мрежата е проход, през който комуникират всички изолирани контейнери. В docker има основно пет мрежови драйвера:

  Най-добрите библиотеки на Python за специалисти по данни
  • Bridge: Това е мрежовият драйвер по подразбиране за контейнер. Вие използвате тази мрежа, когато вашето приложение работи върху самостоятелни контейнери, т.е. множество контейнери, комуникиращи с един и същ докер хост.
  • Хост: Този драйвер премахва мрежовата изолация между докер контейнерите и докер хоста. Използва се, когато не се нуждаете от мрежова изолация между хост и контейнер.
  • Наслагване: Тази мрежа позволява на услугите на рояк да комуникират помежду си. Използва се, когато контейнерите работят на различни хостове на Docker или когато услугите на рояк се формират от множество приложения.
  • Няма: Този драйвер деактивира всички мрежи.
  • macvlan: Този драйвер присвоява mac адрес на контейнери, за да изглеждат като физически устройства. Трафикът се насочва между контейнерите през техните mac адреси. Тази мрежа се използва, когато искате контейнерите да изглеждат като физическо устройство, например, докато мигрирате настройка на VM.
  • Заключение

    Надявам се, че това ви дава представа за архитектурата на Docker и нейните основни компоненти. Навигирайте из Docker, за да научите повече и ако се интересувате от практическо обучение, вижте това Курс за докер майсторство.

    Приятно ви е да прочетете статията? Какво ще кажете за споделяне със света?