Архитектура и компоненты Docker

Архитектура и компоненты Docker



1. Демон Docker Daemon (`dockerd`):

- 𝗥𝗼𝗹𝗲: Управляет контейнерами Docker в системе.

- 𝗥𝗲𝘀𝗽𝗼𝗻𝘀𝗶𝗯𝗶𝗹𝗶𝘁𝗶𝗲𝘀: Создание, запуск и управление контейнерами.


2. Клиент Docker (`docker`):

- 𝗥𝗼𝗹𝗲: Интерфейс, через который пользователи взаимодействуют с Docker.

- 𝗖𝗼𝗺𝗺𝗮𝗻𝗱𝘀: build, pull, run и т.д.


3. Образы Docker:

- 𝗗𝗲𝗳𝗶𝗻𝗶𝘁𝗶𝗼𝗻: Шаблоны, доступные только для чтения, используемые для создания контейнеров.

- 𝗥𝗼𝗹𝗲: Служат основой для создания контейнеров.

- 𝗥𝗲𝗴𝗶𝘀𝘁𝗿𝘆/𝗛𝘂𝗯: Система хранения и распространения образов Docker.


4. Контейнеры Docker:

- 𝗗𝗲𝗳𝗶𝗻𝗶𝘁𝗶𝗼𝗻: Запускаемые экземпляры образов Docker.

- 𝗥𝗼𝗹𝗲: Инкапсуляция приложения и его окружения.


5. Реестр Docker:

- 𝗥𝗼𝗹𝗲: Хранить образы Docker.

- 𝗣𝘂𝗯𝗹𝗶𝗰 𝗥𝗲𝗴𝗶𝘀𝘁𝗿𝘆: Docker Hub.

- 𝗣𝗿𝗶𝘃𝗮𝘁𝗲 𝗥𝗲𝗴𝗶𝘀𝘁𝗿𝘆: Может быть размещен пользователями.


Рабочий процесс Docker


A. Фаза разработки


1. 𝗪𝗿𝗶𝘁𝗲 𝗖𝗼𝗱𝗲:

- Разработчики пишут код локально.


2. 𝗕𝘂𝗶𝗹𝗱 𝗗𝗼𝗰𝗸𝗲𝗿 𝗜𝗺𝗮𝗴𝗲:

- 𝗗𝗼𝗰𝗸𝗲𝗿𝗳𝗶𝗹𝗲: Скрипт с инструкциями по созданию образа Docker.

- 𝗖𝗼𝗺𝗺𝗮𝗻𝗱: `docker build -t my-image .`


3. 𝗧𝗲𝘀𝘁 𝗟𝗼𝗰𝗮𝗹𝗹𝘆:

- Запустите приложение внутри контейнера Docker локально.

- 𝗖𝗼𝗺𝗺𝗮𝗻𝗱: `docker run my-image`.


B. Фаза обмена/развертывания


4. 𝗣𝘂𝘀𝗵 𝗜𝗺𝗮𝗴𝗲 𝘁𝗼 𝗥𝗲𝗴𝗶𝘀𝘁𝗿𝘆:

- Разместить образ Docker в реестре (Docker Hub, AWS ECR и т.д.).

- 𝗖𝗼𝗺𝗺𝗮𝗻𝗱: `docker push my-image`.


5. 𝗗𝗲𝗽𝗹𝗼𝘆 𝗼𝗻 𝗮 𝗦𝗲𝗿𝘃𝗲𝗿/𝗖𝗹𝘂𝘀𝘁𝗲𝗿:

- Извлечение образа Docker из реестра.

- 𝗖𝗼𝗺𝗺𝗮𝗻𝗱: `docker pull my-image`.

- Запустите контейнер на сервере или кластере (например, Kubernetes).

- 𝗖𝗼𝗺𝗺𝗮𝗻𝗱: `docker run my-image`.


C. Интеграция CI/CD


6. 𝗖𝗼𝗻𝘁𝗶𝗻𝘂𝗼𝘂𝘀 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻 (𝗖𝗜):

- Интеграция изменений кода и сборка образа Docker.

- Поместите собранный образ в реестр.


7. 𝗖𝗼𝗻𝘁𝗶𝗻𝘂𝗼𝘂𝘀 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁 (𝗖𝗗):

- Развертывание образа Docker из реестра в производственные среды.


D. Масштабирование и управление


8. 𝗦𝗰𝗮𝗹𝗶𝗻𝗴:

- Увеличение или уменьшение количества работающих контейнеров в зависимости от потребности.


9. 𝗠𝗼𝗻𝗶𝘁𝗼𝗿𝗶𝗻𝗴 & 𝗟𝗼𝗴𝗴𝗶𝗻𝗴:

- Отслеживание производительности и журналов запущенных контейнеров.


10. 𝗨𝗽𝗱𝗮𝘁𝗲 & 𝗥𝗼𝗹𝗹𝗯𝗮𝗰𝗸:

- Развертывание обновлений путем размещения новых образов Docker в реестре и обновления запущенных контейнеров.

- При необходимости откатитесь к предыдущей версии, запустив контейнеры из более старого образа Docker.


E. Сеть и хранение данных


11. 𝗡𝗲𝘁𝘄𝗼𝗿𝗸𝗶𝗻𝗴:

- Управление связью между контейнерами и внешним миром.


12. 𝗦𝘁𝗼𝗿𝗮𝗴𝗲:

- Управление данными и сохранение состояния с помощью томов.


#devops #девопс


Подпишись 👉@i_DevOps

Report Page