빌드하려고 할 때 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

관련 정보