
Ich habe das folgende 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
Dann verwende ich das folgende Shell-Skript zum Erstellen ...
#! /bin/bash
docker-compose build
docker-compose up -d
Aber wenn ich das Shell-Skript ausführe, versucht es, einen moby/buildkit:buildx-stable-1
Container zu erstellen. Dieser Container schlägt fehl und ich erhalte den folgenden Fehler in meinem Build ...
=> 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.
Warum passiert das und wie kann ich diesen Konflikt verhindern?
Antwort1
Dieser Container wird offensichtlich von Docker BuildKit (dem neuen docker build
Ersatz) unter Verwendung dieses Images erstellt:
https://hub.docker.com/r/moby/buildkit
Um diesen Container zu deaktivieren, können Sie die Builder-Instanz wie folgt auf den Standardwert setzen:
docker buildx use default