Нека се запознаем с Docker архитектурата и нейните основни компоненти.
Предполагам, че имате основни познания за Docker. Ако не, можете да се обърнете към тази предишна статия.
Вярвам, че разбирате важността на Docker в DevOps. Сега зад този фантастичен инструмент трябва да има невероятна, добре обмислена архитектура. не е ли
Но преди да говоря за това, позволете ми да покажа предишните и настоящите системи за виртуализация.
Съдържание
Традиционна виртуализация срещу ново поколение
По-рано създавахме виртуални машини и всяка виртуална машина имаше операционна система, която заемаше много място и я правеше тежка.
Сега в случая на докер контейнера имате една единствена операционна система и ресурсите се споделят между контейнерите. Поради това е лек и се зарежда за секунди.
Докер архитектура
По-долу е простата диаграма на Docker архитектура.
Нека ви обясня компонентите на докер архитектурата.
Докер двигател
Това е основната част от цялата система Docker. Docker Engine е приложение, което следва архитектурата клиент-сървър. Той е инсталиран на хост машината. Има три компонента в Docker Engine:
- Сървър: Това е докер демонът, наречен dockerd. Може да създава и управлява докер изображения. Контейнери, мрежи и др.
- Rest API: Използва се за инструктиране на докер демон какво да прави.
- Интерфейс на командния ред (CLI): Това е клиент, който се използва за въвеждане на докер команди.
Докер клиент
Потребителите на Docker могат да взаимодействат с Docker чрез клиент. Когато се изпълнят някакви докер команди, клиентът ги изпраща на докер демон, който ги изпълнява. Docker API се използва от Docker команди. Docker клиентът може да комуникира с повече от един демон.
Докер регистри
Това е мястото, където се съхраняват Docker изображенията. Това може да бъде публичен докер регистър или частен докер регистър. Docker Hub е мястото по подразбиране за докер изображения, публичният регистър на неговите магазини. Можете също да създадете и стартирате свой собствен частен регистър.
Когато изпълнявате команди за изтегляне или изпълнение на докер, необходимото изображение на докер се изтегля от конфигурирания регистър. Когато изпълните командата за натискане на докер, изображението на докера се съхранява в конфигурирания регистър.
Докер обекти
Когато работите с Docker, използвате изображения, контейнери, томове, мрежи; всичко това са обекти на Docker.
Изображения
Докер изображенията са шаблони само за четене с инструкции за създаване на докер контейнер. Изображението на Docker може да бъде изтеглено от център на Docker и да се използва така, както е, или можете да добавите допълнителни инструкции към основното изображение и да създадете ново и модифицирано изображение на Docker. Можете също да създавате свои собствени докер изображения, като използвате докер файл. Създайте докер файл с всички инструкции за създаване на контейнер и го стартирайте; ще създаде вашето персонализирано докер изображение.
Изображението на 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 има основно пет мрежови драйвера:
Заключение
Надявам се, че това ви дава представа за архитектурата на Docker и нейните основни компоненти. Навигирайте из Docker, за да научите повече и ако се интересувате от практическо обучение, вижте това Курс за докер майсторство.
Приятно ви е да прочетете статията? Какво ще кажете за споделяне със света?