Docker: from zero to hero

Ты получишь максимум практических знаний о Docker — начнешь с основ, а через три недели сможешь запускать приложения в Docker и работать с образами
на продвинутом уровне.
СТАРТ 2 ПОТОКА: 17 ОКТЯБРЯ
Освой инструмент,
которым пользуются 77% разработчиков
Формат
Видеокурс с обратной связью
Сертификат
Подтвердит твою экспертность
Длительность
3 недели
Кому подойдёт курс
Сэкономите время и силы на обучение новичков. В рамках курса сделаем из Junior-разработчиков специалистов по Docker, которые смогут полноценно использовать инструмент в своей работе
Junior-разработчики
Узнаете, что такое Docker, разберете особенности использования Docker с различными языками программирования, научитесь безопасно работать с Docker-контейнерами и расширите пул доступных вам инструментов
Руководители разработки
Junior DevOps инженеры
Системные администраторы
Программа курса
После теории будут практические задания на специально подготовленных стендах, которые можно создать из Личного Кабинета. Учебные стенды Слёрм это не симуляторы или тренажеры, а самые настоящие боевые серверы, то есть ваша практика будет близка к продакшену
Введение в Docker
Зачем: Чтобы разогреть умы.

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

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

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

Практика: Нет
Docker и хранение данных
Зачем: Хранение данных в контейнеризованных приложениях имеет ряд подводных камней, а приложения без данных встречаются очень редко. Эта тема покажет, как делать так, чтобы не было мучительно больно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Практика: Демонстрация того, как из локальных манифестов запустить приложение в миникубе.
Аутро курса
Введение в Docker
Зачем: Чтобы разогреть умы.

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

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

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

Практика: Нет
Docker и хранение данных
Зачем: Хранение данных в контейнеризованных приложениях имеет ряд подводных камней, а приложения без данных встречаются очень редко. Эта тема покажет, как делать так, чтобы не было мучительно больно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Практика: Демонстрация того, как из локальных манифестов запустить приложение в миникубе.
Аутро курса
17 октября – установочная встреча и открытие курса
24 октября – АМА-сессия по материалам блоков 1-5
31 октября – АМА-сессия по материалам блоков 6-10
7 ноября – АМА-сессия по материалам блоков 11-15
1
2
3
4
График обучения
Спикеры
DevOps в НЛМК IT

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

— Инженер с 8-летним опытом, Certified Kubernetes Administrator. Автор и преподаватель курсов Слёрма
Марсель Ибраев
CTO Слёрм

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

Вся работа проверяется и валидируется специалистами Слёрм. По итогам дадим именной сертификат, если вы наберете достаточно проходных баллов.
Записаться на курс
Поток
с 17 октября
15 000
Видеоуроки, доступ 2 года

Практические задания
Стенды для практики


АМА-сессии
Общий чат со спикером и другими участниками
Сертификация
Поток с 7 октября
Комплектом дешевле
Обычная цена 50 000 ₽
Обычная цена 15 000 ₽
Комплект курсов для продвинутого админа
Выгода составит 30 000 ₽
Максимум практических знаний о Docker
Docker: from zero to hero
(видеокурс)
Администрирование Linux. Мега (поток)
Продвинутая программа с практикой и траблшутингом
Выгода составит 13 000 ₽
Остались вопросы? Задайте их нашей службе заботы