Почему при попытке сборки создается moby/buildkit:buildx-stable-1, что приводит к конфликту имен контейнеров?

Почему при попытке сборки создается moby/buildkit:buildx-stable-1, что приводит к конфликту имен контейнеров?

У меня есть следующий docker-compose...

version: "3.8"
services:
  proxy:
    container_name: proxy
    extra_hosts:
      - "host.docker.internal:host-gateway"
    build:
      context: proxy
      dockerfile: Dockerfile
    volumes:
      - ./proxy/certificate:/usr/cert
    ports:
      - "443:443"
  ui:
    container_name: ui
    restart: always
    build:
      context: frontend
    ports:
      - "80:80"
  backend:
    container_name: backend
    restart: always
    build:
      context: backend
    ports:
      - "8000:8000"
    environment:
      - API_KEY
      - GOLD_TOKEN

Затем я использую следующий скрипт оболочки для сборки...

#! /bin/bash
docker-compose build
docker-compose up -d

Но когда я запускаю скрипт оболочки, он пытается создать moby/buildkit:buildx-stable-1контейнер. Этот контейнер терпит неудачу, и я получаю следующую ошибку в моей сборке...

 => ERROR [internal] booting buildkit                                                                                                                                  0.9s
 => => pulling image moby/buildkit:buildx-stable-1                                                                                                                     0.8s
 => => creating container buildx_buildkit_gallant_newton0                                                                                                              0.1s
[+] Building 0.9s (1/1) FINISHED                                                                                                                                            
 => CANCELED [internal] booting buildkit                                                                                                                               0.9s
 => => pulling image moby/buildkit:buildx-stable-1                                                                                                                     0.8s
 => => creating container buildx_buildkit_gallant_newton0  
Error response from daemon: Conflict. The container name "/buildx_buildkit_gallant_newton0" is already in use by container "8b56bc95c1e26b736d0f297236adce9766f1363b1f94b35fcbc29ac96b4b61d3". You have to remove (or rename) that container to be able to reuse that name.

Почему это происходит и как предотвратить этот конфликт?

решение1

Этот контейнер, по-видимому, создан Docker BuildKit (новая docker buildзамена) с использованием этого образа: https://hub.docker.com/r/moby/buildkit

Чтобы отключить этот контейнер, можно установить экземпляр конструктора по умолчанию с помощью:

docker buildx use default

Связанный контент