ビルドしようとすると 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 buildこのコンテナは、次のイメージを使用して、 Docker BuildKit (新しい代替品) によって作成されたようです。https://hub.docker.com/r/moby/buildkit

このコンテナを無効にするには、次のようにしてビルダー インスタンスをデフォルトに設定します。

docker buildx use default

関連情報