Docker

Я хочу…

ЗадачаКуда идти
Выучить Docker с нуля01-first-container → читай по порядку
Dockerfile для Next.jsnextjs
Dockerfile для Node.jsnodejs
Dockerfile для Pythonpython-fastapi / python-django
Dockerfile для Gogo
Полный стек (App + DB + Redis + Nginx)fullstack
Понять как работает Dockerarchitecture
Понять сети Dockernetworking
Настроить CI/CDgithub-actions-pipeline
Подготовить к productionproduction-hardening
Отладить контейнерdebug-containers
Найти командуcheatsheet
Docker Swarmswarm — концепции, deploy-stack — практика

Tutorials — путь обучения

Читай по порядку. После прохождения всех уроков — уверенно работаешь с Docker.

#УрокЧто освоишь
0101-first-containerЗапуск, порты, логи, жизненный цикл контейнера
0202-building-imagesDockerfile: от наивного к production-ready (multi-stage)
0303-compose-appDocker Compose: App + DB + Redis, healthcheck, depends_on
0404-networking-workshopСети на практике: bridge, DNS, связь контейнеров
0505-debugging-workshopСломанные контейнеры — находим и чиним
0606-swarm-clusterКластер Swarm на Vagrant: init, join, deploy

Explanation — как устроено

Не привязаны к порядку. Каждый файл — самостоятельная тема. Читай когда хочешь разобраться «почему».

ТемаОписание
architectureClient → Daemon → containerd → runc, OCI, namespaces, cgroups
images-and-layersUnionFS, OverlayFS, Copy-on-Write, base images
storageVolumes vs Bind Mounts vs tmpfs, персистентность данных
networkingCNM, bridge/host/overlay, veth, iptables, DNS
configurationENV vs ARG, secrets, 12-Factor, передача конфигурации
compose-modelДекларативный подход, проекты, зависимости, профили
registryOCI Distribution, манифесты, multi-arch, теги vs дайджесты
runtime-behaviorSignals, PID 1, exit codes, restart policies, logging
securityCapabilities, seccomp, AppArmor, rootless, supply chain
ci-cdBuild → Test → Scan → Push, DinD vs DooD, Kaniko
swarmАрхитектура кластера, Raft, overlay, service discovery

How-to — решение задач

Иди сюда когда нужно сделать конкретную вещь.

ЗадачаФайл
Установить Dockerinstall
Оптимизировать сборкуoptimize-builds
Отладить контейнерdebug-containers
Управлять ресурсами (CPU/RAM)manage-resources
Очистка и обслуживаниеcleanup-maintenance
Локальная сеть и SSHlocal-networking
CI/CD через GitHub Actionsgithub-actions-pipeline
Работа с Private Registryprivate-registry
Production hardeningproduction-hardening

Swarm

ЗадачаФайл
Развернуть стекdeploy-stack
Управление секретамиmanage-secrets
Настройка сетейconfigure-networks
Размещение сервисовmanage-placement
Stateful-приложения (БД)deploy-stateful
Healthchecksconfigure-healthchecks
Бэкап и восстановлениеbackup-restore
Мониторинг кластераmonitor-cluster
Отладка сетиdebug-networking

Recipes — готовые конфиги

Копируй → работает. Каждый рецепт: Dockerfile + compose.yaml + .dockerignore + объяснение.

СтекФайл
Next.jsnextjs
Node.js (Express / Fastify / Nest)nodejs
Python + Djangopython-django
Python + FastAPIpython-fastapi
Gogo
Java + Spring Bootjava-spring
Nginx (reverse proxy + SSL)nginx-reverse-proxy
PostgreSQLpostgres
Redisredis
Fullstack (App + DB + Redis + Nginx)fullstack
Monitoring (Prometheus + Grafana)monitoring

Reference — справочник

СправочникОписание
cheatsheetВсе команды Docker CLI на одной странице
dockerfileВсе инструкции Dockerfile + best practices
compose-specСпецификация compose.yaml
security-checklistЧек-лист перед production-деплоем
swarm-cheatsheetКоманды Swarm CLI + best practices

в этой папке 4 элемента