Многоархитектурные образы (buildx)

Тема дорожной карты · Docker & Containers

Многоархитектурные образы представляют собой усовершенствованную систему сборки и публикации Docker-образов, поддерживающую несколько архитектурных платформ. Это позволяет создавать универсальные образы, которые могут использоваться на различных устройствах, от ноутбуков до серверов и мобильных устройств. Такой подход значительно упрощает процесс разработки и развертывания приложений, обеспечивая их совместимость с различными аппаратными конфигурациями.

Как это работает

Многоархитектурные образы (buildx) используют BuildKit для сборки и публикации образов. BuildKit — это модульная система сборки, которая позволяет выполнять сборку образов на нескольких платформах одновременно. Для этого используется QEMU-эмуляция или удалённые билдеры, что обеспечивает возможность сборки образов для различных архитектур без необходимости иметь доступ к каждому типу оборудования. Однако, эмуляция может быть медленной, поэтому рекомендуется иметь нативный билдер для каждой архитектуры, если это возможно.

Когда применять

Многоархитектурные образы особенно полезны для проектов, требующих широкой совместимости с различными устройствами. Это может быть особенно важно для облачных сервисов, мобильных приложений и микросервисных систем. Docker Hub является стандартным публичным регистром для хранения и распространения образов, но для проектов с проприетарным кодом, секретами или лицензированными зависимостями рекомендуется использовать приватные регистры, такие как Harbor, AWS ECR, Google Artifact Registry, GitHub Container Registry (ghcr.io) или Yandex Container Registry.

Типичные ошибки

Одним из наиболее распространённых недоразумений при использовании многоархитектурных образов является превышение rate-лимитов для анонимного доступа к Docker Hub в CI-системах. Docker Hub ограничивает количество запросов для анонимных пользователей, что может привести к проблемам при использовании busy-раннеров. Для решения этой проблемы рекомендуется использовать аутентифицированный доступ или использовать зеркальные серверы.

Ещё одной распространённой ошибкой является публикация образов с встроенными секретами, что может привести к утечке информации через историю образа. История образа сохраняется навсегда и может быть использована для анализа содержимого образа. Для предотвращения таких утечек рекомендуется использовать подписи образов через инструменты, такие как cosign или Notary.

Связанные понятия

Полезные ресурсы