Docker Theory Flashcards
Основные компоненты, внутреннее устройство
Что такое Docker?
Docker — открытая платформа для разработки, доставки и запуска приложений. Docker позволяет отделить приложение от инфраструктуры
Что такое Docker Engine?
Docker Engine — это технология контейнеризации с открытым исходным кодом для создания и контейнеризации приложений
Что такое Docker Image?
Image (образ) — read-only шаблон на основе которого создаются контейнеры. Содержит исходный код, библиотеки, зависимости и инструменты для запуска приложений
Что такое Docker Container?
Исполняемый экземпляр образа. Изолированный и портативный пакет ПО, который включает в себя всё необходимое для запуска приложения
Что такое контейнеризация?
Способ упаковки приложения и всех зависимостей в один образ, который запускается в изолированной среде
Из каких частей состоит Image (образ)?
Metadata (информация о запуске контйнера) и слои
В каких состояниях может находиться Docker контейнер
- created (созданный)
- running (запущенный)
- paused (приостановленный)
- exited (завершил процессы)
- removing (в состоянии удаления)
- restarting (перезапуск)
Варианты хранения информации в Docker
- Image Layers (директории и файлы, состовляющие слои образа)
- Writable layer (слой, на который по умолчанию записываются изменения, вносящиеся в контейнер)
- Container Metadata (логи, файлы конфигурации)
- In-Memory (хранение в оперативной памяти)
- Bind-Mount (предоставление контейнеру файлов с host OS)
- Volumes (том, часто изменяемые файлы и файлы БД)
Виды связей между Docker контейнерами
- Bridge (используется по-умолчанию. контейнеры разбиваются на группы, где каждая группа подключается к своему драйверу. контейнеры взаимодействуют друг с другом в рамках одной подсети)
- Host (все контейнеры будут подключены к интерфейсу хоста. удаляется изоляция между контейнерами)
- None (контейнер полностью изолируется)
- Overlay (для взимодействия контейнеров на разных хост-машинах)
- MACVLAN (прямое подключение к физической сети. назначает mac-адрес виртуальному сетевому интерфейсу каждого контейнера)
Top-level элементы файла Docker Compose
- version & name (имя и версия)
- services (контейнеры)
- networs (связи)
- volumes (тома)
- configs (дополнительный настройи)
- secrets (засекреченные данные, такие как пароли)
Что такое Docker Compose?
Docker Compose — декларативный инструмент для запуска многоконтейнерных приложений. Файл docker-compose.yml — это файл YAML, который определяет, как контейнеры Docker должны вести себя в рабочей среде.
В каких средах могут работать контейнеры Docker?
Во всех основных дистрибутивах Linux, Microsoft Windows и в любой инфраструктуре, включая виртуальные машины, на физическом сервере и в облаке.
Каковы варианты использования Docker?
- Контейнеризация традиционных приложений
- Непрерывная интеграция и развертывание
- Микросервисы
- Оптимизация ИТ-инфраструктуры (уменьшение размера инфраструктуры, снижение эксплуатационых расходов на поддержку дополнительных ОС, улучшение использования ресурсов)
Как в принципе работают контейнеры?
Контейнеры могут совместно использовать одно ядро, и единственная информация, которая должна быть в образе контейнера, — это исполняемый файл и его зависимости пакетов, которые никогда не нужно устанавливать на хост-системе. Эти процессы работают как собственные процессы, и вы можете управлять ими по отдельности.
Что такое Dockerfile?
Dockerfile — файл, в котором описаны инструкции по сборке образа. Определяет, что происходит внутри контейнера, определяет сетевые интерфейсы.