Apache Kafka: старт потока 3 февраля
Close

Docker

Курс от основ до продвинутых абстракций, в рамках которого вы:

— научитесь запустить сайт в контейнере,
— узнаете о тонкости использования stateful и Docker,
— соберете несколько контейнеров в рабочую систему,
— запустите готовый pipeline в Gitlab,
— научитесь обходить ограничения DockerHub.
ЦЕНА: 10 000 ₽
Пара строк о капитанской теории
Залог продуктивного обучения — знание базовых абстракций, терминов и команд. В интернете предостаточно теоретической информации по Docker. Поэтому базовой теории в курсе совсем немного. Ниже мы собрали полезные дополнительные материалы от экспертов.

Посмотреть про Docker:
Что такое Docker?
Контейнеризация понятным языком (интервью)

Почитать:
Docker и все, все, все
Контейнеризация понятным языком. Часть 1
Контейнеризация понятным языком. Часть 2
Сергей Бондарев,
Архитектор в Southbridge
Спасибо, Кэп!

Программа

Курс будет доступен в Личном Кабинете сразу после оплаты.
№1: Введение в Docker
Зачем: Чтобы разогреть умы.

Теория: Что такое Docker, как возник, какие проблемы решает. Чем различаются
виртуализация и контейнеризация, практика современного применения. Тонкости
установки Docker на Centos, Debian, Mac и Windows (как настраивать daemon и какие
есть ограничения).

Практика: знакомство со стендом, устанавливаем Docker на сервер. 30 минут
№2: Основные команды и абстракции Docker. CLI. Общая схема работы Docker
Зачем: без этой базы не получится приступить к дальнейшим темам. Если вы не
знаете основные команды Docker — то эта тема для вас.

Теория: Команды управления контейнерами, образами (run, rm, push и т.д.).
Registry, Docker Daemon, Container, Image, Dockerfile и их взаимодействие.

Практика: нет
№3: Запуск собственного приложения в Docker
Зачем: Docker нужен, чтобы запускать код в контейнерах. Именно эта тема научит
упаковывать произвольный код в образы контейнеров и работать с образами.

Теория: Написание Dockerfile, сборка Image, хранение в DockerHub, запуск
приложения.

Практика: Скачиваем готовый контейнер с DockerHub запускаем в нем сайт.
№4: Работа со stateful-данными в Docker
Зачем: Хранение данных в контейнеризованных приложениях имеет ряд подводных
камней, а приложения без данных встречаются очень редко. Эта тема покажет, как
делать так, чтобы не было мучительно больно.

Теория: Docker Volumes, типы стораджей. Подводные камни и best practices при
использовании stateful и Docker.

Практика: Создаем контейнер с базой данных из DockerHub.
№5: Docker-compose файл
Зачем: Docker Compose — отличный инструмент для создания тестовых сред,
состоящих из нескольких контейнеров на мощностях разработчика. Удобно для
тестирования приложения, но также может использоваться и в промышленной
эксплуатации.

Теория: Что это, для чего используется, как настраивается. Разница между v2 и v3.

Практика: Запускаем несколько контейнеров и налаживаем связи между ними.
Берем репозиторий с готовыми контейнерами, собираем их в рабочую систему.
№6: Docker и CI/CD
Зачем: Деплоить код без CI/CD процессов в наше время считается дурным тоном.
Посмотрим, как Docker помогает доставлять код на различные среды (prod, dev,
test), как в целом работают CI/CD процессы с участием Docker и какие нюансы есть
в этих процессах.

Теория: Построение пайплайнов на примере Gitlab. Проблемы при использовании
голого Docker и CI/CD. Возможности тестирования через Gitlab.

Практика: Запускаем готовый пайплайн в Gitlab.
№7: Особенности использования Docker с различными языками программирования, в том числе с компилируемыми языками
Зачем: Докер нужен, чтобы запускать код в контейнерах, но разные языки имеют
свою специфику сборки. Эта тема покажет особенности сборки контейнеров с
разными ЯП.

Теория: Multistage сборка, размер Image. ruby, php, python, go, java, c#, c++

Практика: Собираем один контейнер с компилируемым кодом и один без.
№8: Сеть в Docker
Зачем: Приложения в контейнере редко нужны сами себе, обычно их нужно
предоставить пользователям или получать доступ из контейнера к другому
приложению, например, базе данных. В этой теме поймем, как это сделать, а также,
как работает сеть в Docker и какие режимы работы сети бывают.

Теория: Какие режимы работы сети бывают, где они настраиваются. DNS resolving
внутренний. Режимы работы bridge с хостовой системой.

Практика: Настраиваем сеть между контейнерами.
№9: Docker под капотом
Зачем: Научимся работать с контейнерами в Kubernetes — по следам хайпа про
прекращение поддержки Docker в Kubernetes. В этой теме посмотрим, как именно
работает Docker, а также узнаем, почему отказ Kubernetes от Docker — это не
страшно. Понимание работы Docker позволит делать приложения безопаснее,
обеспечивая необходимый уровень изоляции.

Теория: Механизмы Linux, обеспечивающие изоляцию контейнера. Низкоуровневые
инструменты контейнеризации.

Практика: Покажем, как создавать «контейнер» без Docker (unshare, nsenter...).
№10: Логирование и мониторинг Docker контейнеров
Зачем: Научимся диагностировать проблемы приложений в контейнерах, а также
предупреждать их.

Теория: Особенности мониторинга микросервисной инфраструктуры.
Инструменты и подходы. Мониторинг Docker. Про то, как работает логгинг в
контейнере, почему не стоит складывать логи в файл. Enterprise решения. Как
собирать метрики. Endpoint + health check.

Практика: Настраиваем логи для своего приложения. Контейнер падает по
непонятной причине, нужно это отследить и прекратить.
№11: Продвинутая работа с образами. Настройка собственного Registry
Зачем: Обход ограничений DockerHub. Да и вообще свой registry – это правильно.
Контейнеры на Dockerhub доступны всем, но не весь код можно сделать публичным.
Рассмотрим создание приватного registry, чтобы конкуренты не украли ваши
контейнеры.

Теория: Как прикрутить к репозиторию авторизацию. Gitlab Registry (Container
Registry tag expiration policy), Harbor. Очистка ненужных образов.

Практика: поднимаем свой репозиторий и пушим в него контейнер. Создаем
токены Gitlab.
№12: Безопасность в Docker контейнерах
Зачем: DockerHub – это «чертова помойка», не надо пользоваться образами оттуда
без необходимости. Поймем, какие угрозы есть при использовании Docker и как их
избегать.

Теория: Основные угрозы при запуске приложения в контейнере: запуск от рута,
излишние привилегии, уязвимости в Docker, неполноценность изоляции
контейнеров, инструменты анализа безопасности контейнеров.

Практика: устраняем грубые уязвимости в контейнере с демонстрационным
приложением ИЛИ используем уязвимость, чтобы сделать что-то, чего мы делать не
должны.
№13: Оркестрация Docker. Kubernetes, Docker SWARM. Различия, фичи, для чего оно нужно
Зачем: Это теоретический раздел о том, как работает Docker в сложных
инфраструктурах.

Теория: Рассказываем, что такое оркестрация и зачем она нужна на примере K8s и
swarm. K8s as a service.

Практика: Демонстрация того, как из локальных манифестов запустить приложение
в миникубе.
№14: Аналоги Docker
Зачем: Docker — не единственный инструмент контейнеризации на рынке.
Посмотрим на альтернативы, поймём, зачем они вообще нужны и какие проблемы
решают.

Теория: Наиболее популярные аналоги Docker, как они работают и зачем нужны.
Примеры запуска приложений в этих аналогах.

Практика: Вместе со спикером поднимаем приложение на Podman и Kata.
Практические задания
После теории будут практические задания на специально подготовленных стендах, которые можно создать из Личного Кабинета. Учебные стенды Слёрм это не симуляторы или тренажеры, а самые настоящие боевые серверы, то есть ваша практика будет близка к продакшену.
Спикеры курса
Техлид DevOps в X5 Group

— Выстраивает DevOps процессы уже 6 лет. Начал еще когда не знал, что такое DevOps.
— Поддерживает и развивает k8s кластера as-a-service для 20+ продуктовых команд.
Виктор Попов
Александр Швалов
Инженер Southbridge

— Администратор с 7-летним стажем.
— Certified Kubernetes Administrator.
— Разработчик курсов Слёрм.
— Настройка и сопровождение Kubernetes-проектов в Southbridge.
Марсель Ибраев
CTO Слёрм

— Инженер с 8-летним стажем
— Certified Kubernetes Administrator
— Внедрения Кубернетес для клиентов Southbridge
— Разработчик курсов и спикер Слёрм
Отзыв участника
Сертификация
После прохождения курса вы также можете пройти сертификацию по Docker. Это отдельный набор практических заданий, которые вам нужно выполнить в ограниченное время.

Вся работа проверяется и валидируется специалистами Слёрм. По итогам дадим именной сертификат, если вы наберете достаточно проходных баллов.
Начать учиться
Стоимость
10 000 ₽
Доступ откроется в личном кабинете
2 500 ₽/мес
Рассрочка на 4 месяца, без переплат. Первая оплата через месяц.
Оплатить как юр.лицо
Мы свяжемся с вами, ответим на вопросы и отправим счёт