О чем этот материал
Контейнеры, образы, Dockerfile, compose, YAML и базовая логика выкладки.
Это адаптированная версия учебной презентации: слайды разобраны в формате обычной статьи, чтобы материал было легче читать с телефона и возвращаться к нужным блокам позже.
Что внутри
Ниже краткий план материала. По нему удобно понять, в каком порядке разбирать тему.
- Виртуализация
- До было до
- Docker
- Образ
- Dockerfile
- Docker-compose
- YAML
- Deploy
- K8S
Виртуализация
Серверов:
Позволяет запускать несколько операционных систем на одном физическом сервере как виртуальные машины (ВМ). Каждая ВМ работает независимо и
изолировано от других.
Сетей:
Гипервизор
Создаёт и управляет виртуальными машинами. Он позволяет одному физическому серверу запускать несколько изолированных виртуальных сред,
каждая из которых может иметь свою операционную систему и приложения
аппаратное обеспечение (VMware EXSi)
(VirtualBox)
- Тип 1 “bare metal” - ставится непосредственно на
- Тип 2 “hosted” - ставится в рамках ОС
Контейнеризация это технология, которая позволяет упаковать приложение вместе с его окружением и зависимостями в контейнер,
обеспечивая таким образом его портативность и консистентность работы в любой среде. Это решает проблему "у меня работает, а у тебя нет", так как приложение будет работать одинаково везде, где есть поддержка контейнера,
будь то разработчик, тестирование, стейджинг или продакшн.
Контейнеризация
Docker платформа для разработки, доставки и запуска приложений в контейнерах
— это файл, который включает в себя все необходимое для запуска приложения: код, среду выполнения, библиотеки, переменные окружения и конфигурационные файлы. Образы служат
основой для создания контейнеров.
— это запущенная инстанция образа, которая включает в себя приложение и его зависимости.
Контейнеры изолированы друг от друга и от хостовой системы, но могут общаться через предварительно определенные каналы.
- Образ (Image)
- Контейнер (Container)
- Dockerfile
- Слои (Layers)
- Docker Hub и Реестр (Registry)
- Docker Compose
- Docker Swarm
- Тома (Volumes)
- Сети (Networks)
Dockerfile последовательность инструкций и команд для сборки образа Docker.
FROM - начало сборки от базового образа. Первая инструкция в любом Докерфайле
RUN - выполнение команд внутри образа на этапе сборки
COPY [откуда] [куда]
EXPOSE - указание порта, который будет слушаться Докером
Docker
Типичный алгоритм работы
- Создать Dockerfile
- Создать образ - в директории с файлом
- Запустить контейнер из образа
Docker-compose
Когда много контейнеров
YAML для конфигурирования файл docker-compose.yml
Определяем контейнеры (services)
Указываем сети (даем названия)
Пауза
Зарегайтесь пожалуйста https://practicum.yandex.ru/webinar-form/go-developer/
YAML
Yet Another Markup Language
YAML Ain't Markup Language
Формат разметки/сериализации данных (следите за отступами)
Deploy
Доставка приложения туда, где оно будет работать
Доставка приложения туда, где оно будет работать
Оркестрация
Когда контейнеров ну очень много!
Kubernetes (k8s)
Когда контейнеров ну очень много!