Що нового?

Набір учасників [[Слерм] Docker: from zero to hero (Марсель Ібраєв, Олександр Шувалов)

Інформація про покупку
Тип покупки: Складчина
Ціна: 6618 ГРН
Учасників: 0 з 81
Організатор: Відсутній
Статус: Набір учасників
Внесок: 85 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор

Ти отримаєш максимум практичних знань про Docker-почнеш з основ, а через три тижні зможеш запускати додатки в Docker і працювати з образами
на просунутому рівні.

Після теорії будуть практичні завдання на спеціально підготовлених стендах, які можна створити з Особистого кабінету. Навчальні стенди Слерм це не симулятори або тренажери, а справжнісінькі Бойові сервери, тобто ваша практика буде близька до продакшену

введення в 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 під капотом


Навіщо: навчимося працювати з контейнерами в Kubernetes-слідами хайпа про припинення підтримки Docker в Kubernetes. У цій темі подивимося, як саме працює 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 доступні всім, але не весь код можна зробити публічним. Розглянемо створення приватного реєстру, щоб конкуренти не вкрали ваші контейнери.

Теорія: як прикрутити до репозиторію авторизацію. 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.

Практика: демонстрація того, як з локальних маніфестів запустити додаток в мінікубе.
https://privatelink.de/?https://slurm.io/docker-intensive
 
Угорі