[00:01] концепции Docker — технологии, которая определит то, как мы будем создавать, развертывать и масштабировать приложения. Это просто, надежно и работает везде. Начнём с основы — Dockerfile. Здесь мы определяем [00:15] среду, необходимую для работы нашего приложения. Мы указываем базовый образ, например, Node 14 Alpine, тщательно отбирая только необходимые элементы и ничего лишнего. Мы выбираем облегченные варианты официальных образов, комбинируем команды для уменьшения количества [00:28] слоев и удаляем инструменты сборки после компиляции. Эти методы позволяют нам создавать компактные и эффективные изображения. В нашем Dockerfile каждая инструкция создает новый слой. Эти слои фиксируют конкретные изменения в файлах и [00:42] конфигурации. Мы указываем базовый образ, устанавливаем зависимости и копируем код приложения. Такая многоуровневая структура позволяет Docker кэшировать и повторно использовать неизменяемые части, что ускоряет сборку. [00:56] образы Docker. Это самодостаточные пакеты, включающие все необходимое для нашего приложения : среду выполнения, системные инструменты, объединенные в один комплект. Изображения неизменяемы. После создания их [01:12] нельзя модифицировать, можно только заменить новыми версиями. Эта неизменность разработки, будет работать идентично в производственной среде. Теперь поговорим о контейнерах. Эти экземпляры наших образов, используемые во время выполнения, являются легковесными, поскольку они [01:27] используют ядро ​​хост-системы. Тем не менее, каждый контейнер поддерживает строгую изоляцию благодаря функциям ядра Linux. Пространства имен разделяют системные ресурсы, такие как деревья процессов и сетевые интерфейсы. Cgroups обеспечивают детальный [01:41] контроль над ресурсами. Благодаря такой архитектуре, на основе одного и того же образа может запускаться несколько контейнеров, каждый из которых имеет собственное изолированное состояние. Для распространения мы используем реестры Docker. Эти хранилища становятся единственным источником [01:55] достоверной информации о наших изображениях. Независимо от того, используем ли мы Docker Hub публично или запускаем собственный частный реестр внутри компании, принцип остается тем же: собери один раз, запускай где угодно. Это решает проблему "Апчхи, у меня работает [02:08] Сохранение данных в контейнерах представляет собой интересную задачу. Решение предоставляют тома Docker. В отличие от записываемого слоя контейнера, тома существуют независимо и сохраняют данные на протяжении всего жизненного цикла контейнера. Мы [02:23] можем совместно использовать их между контейнерами и монтировать по определенным путям, что удобно для баз данных, обмена ресурсами, файлами конфигурации и любыми данными, которые По мере усложнения приложений мы обращаемся к Docker Compose. Это позволило нам определять [02:39] многоконтейнерные приложения в простом YAML-файле. С помощью Compose мы описываем всю нашу конфигурацию, сервисы, сети, тома и храним все это под контролем версий. Это упрощает разработку . В производственной среде мы часто [02:54] переходим на оркестраторы контейнеров, такие как Kubernetes. Эти платформы справляются со сложностями масштабируемой работы контейнеров , автоматического переключения при сбоях, балансировки нагрузки, поэтапных обновлений и самовосстанавливающейся инфраструктуры. [03:07] Они обеспечивают надежное обнаружение сервисов, интегрированный мониторинг и детальный необходимые для развертывания в производственной среде. В основе нашего взаимодействия с Docker лежит интерфейс командной строки (CLI). Здесь мы взаимодействуем с Docker, создавая образы, [03:22] запуская контейнеры и управляя сетями. Демон Docker выполняет всю сложную работу в фоновом режиме, благодаря чему всё происходит без усилий. Сфера сред выполнения контейнеров выходит за рамки Docker. Такие инструменты, как containerd и Podman, предлагают [03:36] специализированные среды выполнения, ориентированные исключительно на выполнение контейнеров и управление образами. Они особенно полезны при работе с оркестраторами, такими как Kubernetes. Если вам понравилось наше видео, вам также может понравиться [03:49] наша рассылка по системному проектированию. Издание освещает темы и тенденции в проектировании крупномасштабных систем и пользуется доверием миллиона читателей. Подпишитесь на блог readers. Subscribe at blog.bytebytego.com.