Как использовать команду docker buildx use для переключения между экземплярами сборщиков

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этой лабораторной работе вы научитесь управлять различными экземплярами Docker builder (сборщика) и переключаться между ними с помощью команды docker buildx use. Мы начнём с создания нескольких экземпляров сборщика, чтобы иметь варианты для сборки Docker-образов.

После создания этих экземпляров вы узнаете, как вывести список всех доступных сборщиков для просмотра их деталей и статуса. Основная часть лабораторной работы будет посвящена использованию команды docker buildx use для переключения на конкретный экземпляр сборщика при выполнении операций сборки. В завершение вы изучите, как установить сборщик по умолчанию для текущего контекста и как настроить сборщик для сохранения изменений контекста.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555064{{"Как использовать команду docker buildx use для переключения между экземплярами сборщиков"}} docker/create -.-> lab-555064{{"Как использовать команду docker buildx use для переключения между экземплярами сборщиков"}} docker/build -.-> lab-555064{{"Как использовать команду docker buildx use для переключения между экземплярами сборщиков"}} end

Создание нескольких экземпляров сборщика

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

Сначала проверим текущие экземпляры сборщиков.

docker buildx ls

Вы увидите экземпляр сборщика по умолчанию. Теперь создадим новый экземпляр с именем mybuilder1.

docker buildx create --name mybuilder1

Эта команда создаёт новый экземпляр сборщика. Проверим его создание, снова выведя список экземпляров.

docker buildx ls

Теперь вы должны видеть как сборщик по умолчанию, так и mybuilder1.

Создадим ещё один экземпляр с именем mybuilder2.

docker buildx create --name mybuilder2

Снова проверим создание нового экземпляра.

docker buildx ls

Теперь в списке должны отображаться сборщик по умолчанию, mybuilder1 и mybuilder2.

Просмотр доступных экземпляров сборщиков

На предыдущем шаге мы создали несколько экземпляров сборщиков. В этом разделе мы рассмотрим, как вывести список доступных экземпляров для просмотра их статуса и деталей.

Для вывода списка экземпляров сборщиков используется команда docker buildx ls. Эта команда отображает информацию обо всех доступных в системе экземплярах сборщиков.

Выполним команду снова, чтобы увидеть созданные ранее экземпляры:

docker buildx ls

Результат будет представлен в виде таблицы со столбцами: NAME, DRIVER, ENDPOINT, STATUS и BUILDER.

  • NAME: Название экземпляра сборщика
  • DRIVER: Используемый драйвер (например, docker-container)
  • ENDPOINT: Конечная точка подключения сборщика
  • STATUS: Текущий статус (например, running - работает, stopped - остановлен)
  • BUILDER: Указывает, используется ли данный сборщик в текущий момент

В выводе вы должны увидеть сборщик по умолчанию, а также mybuilder1 и mybuilder2. В столбце STATUS для созданных сборщиков будет указано running, если они были автоматически запущены, или stopped, если нет.

Эта команда полезна для проверки доступных сборщиков и их состояния перед переключением или использованием для сборки образов.

Переключение между экземплярами сборщиков

В этом разделе мы научимся переключаться между конкретными экземплярами сборщиков. Когда у вас есть несколько экземпляров, вы можете выбирать, какой из них использовать для сборки Docker-образов.

Для переключения на конкретный экземпляр сборщика используется команда docker buildx use с указанием имени нужного экземпляра.

Давайте переключимся на экземпляр mybuilder1, созданный ранее:

docker buildx use mybuilder1

После выполнения этой команды mybuilder1 станет активным сборщиком в текущем контексте Docker.

Проверим текущий активный сборщик, снова выведя список экземпляров. Активный сборщик будет помечен звёздочкой (*) в колонке BUILDER.

docker buildx ls

В выводе вы увидите звёздочку рядом с mybuilder1, что указывает на его активный статус.

Теперь переключимся на экземпляр mybuilder2:

docker buildx use mybuilder2

Проверим, что mybuilder2 стал активным:

docker buildx ls

Теперь звёздочка должна отображаться рядом с mybuilder2.

Возможность переключаться между экземплярами сборщиков позволяет гибко использовать различные среды и конфигурации сборки по мере необходимости.

Настройка сборщика по умолчанию для текущего контекста

На предыдущем шаге мы научились переключаться между экземплярами сборщиков для текущей сессии. В этом разделе мы рассмотрим, как установить сборщик по умолчанию для текущего контекста Docker. Это означает, что при использовании команд Docker в данном контексте будет автоматически применяться указанный сборщик.

Для установки сборщика по умолчанию используется команда docker buildx use с флагом --default и именем экземпляра сборщика.

Установим mybuilder1 в качестве сборщика по умолчанию для текущего контекста:

docker buildx use --default mybuilder1

После выполнения команды mybuilder1 станет сборщиком по умолчанию для этого контекста.

Проверим это, выведя список экземпляров сборщиков. Сборщик по умолчанию будет помечен звёздочкой (*) и обозначен как default в выводе.

docker buildx ls

Вы должны увидеть mybuilder1 как активный сборщик (со звёздочкой) и как сборщик по умолчанию.

Теперь установим mybuilder2 в качестве сборщика по умолчанию:

docker buildx use --default mybuilder2

Проверим, что mybuilder2 теперь является сборщиком по умолчанию:

docker buildx ls

Теперь mybuilder2 должен быть помечен как активный и как сборщик по умолчанию.

Настройка сборщика по умолчанию полезна, когда вам нужно постоянно использовать определённый сборщик для проектов в конкретном контексте Docker.

Сохранение изменений контекста для сборщика

На предыдущих шагах мы научились переключать сборщики и устанавливать их по умолчанию для текущего контекста. Однако эти изменения могут не сохраняться между разными сессиями терминала или перезагрузками системы в зависимости от конфигурации Docker. В этом разделе мы рассмотрим, как обеспечить сохранение выбранного сборщика по умолчанию даже после закрытия и повторного открытия терминала или перезапуска демона Docker.

Команда docker buildx use --default устанавливает сборщик по умолчанию для текущего контекста Docker. Обычно эта настройка сохраняется в конфигурационном файле Docker. Для обеспечения сохранности изменений обычно не требуется дополнительных команд помимо установки значения по умолчанию. Флаг --default предназначен именно для постоянного сохранения изменений в конкретном контексте.

Давайте повторно проверим, что mybuilder2 установлен как сборщик по умолчанию:

docker buildx ls

Вы по-прежнему должны видеть mybuilder2 помеченным как сборщик по умолчанию.

Сохранение этой настройки зависит от системы управления конфигурацией Docker. При использовании docker buildx use --default Docker обновляет свою конфигурацию, чтобы отразить этот выбор для активного контекста. Эта конфигурация загружается при запуске Docker, гарантируя использование предпочтительного сборщика по умолчанию.

Хотя не существует отдельной команды специально для "сохранения" изменений помимо использования --default, важно понимать, что флаг --default обеспечивает это сохранение в рамках контекста Docker.

Для реальной проверки сохранности изменений обычно требуется перезапустить демон Docker или открыть новую сессию терминала и повторно проверить сборщик по умолчанию с помощью docker buildx ls. В данной лабораторной среде флага --default достаточно для демонстрации желаемого поведения установки постоянного значения по умолчанию для текущего контекста.

Итоги

В этой лабораторной работе мы изучили, как управлять экземплярами сборщиков Docker с помощью команды docker buildx. Мы начали с создания нескольких экземпляров сборщиков, продемонстрировав, как добавлять новые сборщики помимо стандартного. Затем мы отработали перечисление доступных экземпляров сборщиков с помощью docker buildx ls, чтобы просмотреть их имена, драйверы, конечные точки и статусы. Этот шаг крайне важен для понимания доступных сред сборки.