Инструменты пользователя

Инструменты сайта


методология_devops:основные_понятия_docker:start

Системы виртуализации и контейнеризации. Работа с Docker (Основные понятия)

Введение

  • Проблема: Изоляция приложений и управление ресурсами на одном физическом сервере.
  • Решения:
    • Виртуализация
    • Контейнеризация

Виртуализация (Virtualization)

  • Определение: Создание виртуальной версии чего-либо, например, операционной системы, сервера, хранилища или сетевого ресурса.
  • Принцип работы: Гипервизор (Hypervisor) управляет физическими ресурсами и распределяет их между виртуальными машинами (Virtual Machines, VMs).
  • Архитектура:
    • Тип 1 (Bare-metal): Гипервизор устанавливается непосредственно на физический сервер (например, VMware ESXi, Microsoft Hyper-V Server).
    • Тип 2 (Hosted): Гипервизор устанавливается как приложение на существующей операционной системе (например, VirtualBox, VMware Workstation).
  • Характеристики виртуальных машин:
    • Каждая VM имеет собственную операционную систему, ядро, библиотеки и приложения.
    • Обеспечивают высокий уровень изоляции.
    • Требуют значительных ресурсов (CPU, RAM, disk space) для каждой VM.
    • Процесс запуска и остановки может быть медленным.
  • Применение: Тестирование, разработка, развертывание сложных приложений с различными требованиями к ОС.

Контейнеризация (Containerization)

  • Определение: Упаковка приложения и всех его зависимостей (библиотек, системных утилит, кода, среды выполнения) в легковесный, переносимый контейнер.
  • Принцип работы: Контейнеры используют общее ядро хостовой операционной системы, но изолированы друг от друга на уровне процессов и файловой системы.
  • Архитектура:
    • Docker Engine (или другой движок контейнеризации): Управляет созданием, запуском и остановкой контейнеров.
    • Контейнеры используют общие ресурсы хостовой ОС, что делает их более легкими и быстрыми по сравнению с VM.
  • Характеристики контейнеров:
    • Легковесные и быстро запускаются/останавливаются.
    • Используют меньше ресурсов, чем VM.
    • Обеспечивают изоляцию на уровне приложений.
    • Переносимость между различными средами (при наличии Docker Engine).
  • Применение: Микросервисная архитектура, CI/CD, быстрое развертывание и масштабирование приложений.

Docker: Введение

  • Определение: Популярная платформа для разработки, доставки и запуска приложений в контейнерах.
  • Основные цели Docker:
    • Сделать процесс разработки и развертывания приложений более простым, быстрым и воспроизводимым.
    • Обеспечить консистентность окружения на различных этапах жизненного цикла приложения.
    • Улучшить переносимость приложений.

Основные понятия Docker

  • Docker Image (Образ Docker):
    • Шаблон с инструкциями для создания Docker-контейнера.
    • Содержит все необходимое для запуска приложения: код, библиотеки, зависимости, инструменты, настройки.
    • Образы являются неизменяемыми (immutable).
    • Создаются на основе Dockerfile.
  • Dockerfile:
    • Текстовый файл, содержащий последовательность инструкций для сборки Docker-образа.
    • Определяет базовый образ, копирование файлов, установку пакетов, настройку окружения, команду для запуска приложения и т.д.
  • Docker Container (Контейнер Docker):
    • Запущенный экземпляр Docker-образа.
    • Изолированная среда выполнения для приложения.
    • Может быть создан, запущен, остановлен, перемещен или удален.
    • Несколько контейнеров могут быть созданы из одного и того же образа.
  • Docker Hub:
    • Облачный реестр (registry) Docker-образов.
    • Содержит большое количество публичных образов, созданных Docker и сообществом.
    • Позволяет хранить и обмениваться собственными образами.
  • Docker Daemon (Docker Engine):
    • Фоновый сервис, работающий на хостовой машине.
    • Отвечает за сборку, запуск, управление образами и контейнерами.
    • Принимает команды от Docker Client.
  • Docker Client:
    • Инструмент командной строки (CLI) или графический интерфейс (GUI), который позволяет пользователю взаимодействовать с Docker Daemon.
    • Отправляет команды демону для выполнения различных операций (например, сборка образа, запуск контейнера).
  • Docker Registry:
    • Сервис для хранения и распространения Docker-образов.
    • Docker Hub является публичным реестром, но также могут быть созданы частные реестры.
  • Docker Volume (Том Docker):
    • Механизм для обеспечения постоянного хранения данных, используемых контейнерами.
    • Данные в томах не удаляются при удалении контейнера.
    • Могут быть различных типов (например, named volumes, bind mounts).
  • Docker Network (Сеть Docker):
    • Изолированные сети, которые позволяют контейнерам взаимодействовать друг с другом и с внешним миром.
    • Docker создает несколько стандартных сетей (например, bridge, host, none), а также позволяет создавать пользовательские сети.

Заключение

  • Виртуализация и контейнеризация - ключевые технологии для изоляции и управления приложениями.
  • Docker - ведущая платформа в области контейнеризации, предоставляющая удобные инструменты для работы с контейнерами.
  • Понимание основных понятий Docker (образы, контейнеры, Dockerfile, Docker Hub и т.д.) является фундаментом для эффективного использования этой технологии.
методология_devops/основные_понятия_docker/start.txt · Последнее изменение: 2025/05/31 20:12 — kirill

DokuWiki Appliance - Powered by TurnKey Linux