Драйверы
Драйверы Buildx — это конфигурации для того, как и где работает бэкенд BuildKit. Настройки драйверов являются настраиваемыми и позволяют осуществлять тонкий контроль над сборщиком. Buildx поддерживает следующие драйверы:
docker
: использует библиотеку BuildKit, встроенную в демон Docker.docker-container
: создаёт выделенный контейнер BuildKit с помощью Docker.kubernetes
: создание стручков BuildKit в кластере Kubernetes.remote
: подключается напрямую к управляемому вручную демону BuildKit.
Разные драйверы поддерживают разные сценарии использования. Драйвер docker
по умолчанию ориентирован на простоту и удобство использования. Он имеет ограниченную поддержку расширенных функций, таких как кэширование и форматы вывода, и не настраивается. Другие драйверы обеспечивают большую гибкость и лучше справляются с расширенными сценариями.
В следующей таблице приведены некоторые различия между драйверами.
Характеристика |
|
|
|
|
---|---|---|---|---|
Автоматическая загрузка образа |
✅ |
|||
Экспорт кэша |
Только в линию |
✅ |
✅ |
✅ |
Тарбольный выход |
✅ |
✅ |
✅ |
|
Многоархивные образы |
✅ |
✅ |
✅ |
|
Конфигурация BuildKit |
✅ |
✅ |
Внешнее управление |
Список доступных строителей
Используйте docker buildx ls
для просмотра экземпляров сборщика, доступных в вашей системе, и драйверов, которые они используют.
$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
default docker
default default running 20.10.17 linux/amd64, linux/386
В зависимости от вашей конфигурации, вы можете обнаружить в списке несколько сборщиков, использующих драйвер Docker. Например, на системе с установленной вручную версией dockerd, а также Docker Desktop, вы можете увидеть следующий результат docker buildx ls
:
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
default docker
default default running 20.10.17 linux/amd64, linux/386
desktop-linux * docker
desktop-linux desktop-linux running 20.10.17 linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
Это происходит потому, что сборщики драйверов Docker автоматически извлекаются из доступных Контексты Docker. Когда вы добавляете новые контексты, используя docker context create
, они появятся в вашем списке билдеров buildx.
Создаёт нового строителя
Используйте команду docker buildx create для создания конструктора и указывает драйвер с помощью опции --driver
.
$ docker buildx create --name=<builder-name> --driver=<driver> --driver-opt=<driver-options>
Что дальше
Читает о каждом из драйверов Buildx, чтобы узнать, как они работают и как их использовать: