Docker auf Windows: Bereitstellen, Ausführen und Reparieren

Bereitstellen, Ausführen und Reparieren von Docker-Anwendungen auf Windows (Docker Desktop + WSL2-Backend), destilliert aus einer echten End-to-End-Bereitstellung. Nutzen Sie dies, wenn Sie mit Docker Compose / Docker Desktop auf Windows arbeiten und auf eines der folgenden Probleme stoßen: Docker Desktop startet nicht oder stürzt im Loop ab (insbesondere Fehler, die "Inference Manager", "Secrets Engine", "Listener" oder "Die Datei kann vom System nicht zugegriffen werden" erwähnen); Image-Pulls, Pip/Apt-Installationen, WSL-Installationen oder Modellgewicht-Downloads, die in einem Festland-China-Netzwerk timeouten oder TLS-Fehler verursachen; Einrichtung eines unbeaufsichtigten / Autostart-Betriebs (Auto-Login, Task Scheduler, Container-Neustartrichtlinie, Sperrbildschirm); PowerShell-Skripte, die Zeichen verstümmeln, beim Parsen abbrechen, sich selbst töten oder roten Fehlertext ausgeben; oder Bereitstellung eines Docker-Projekts auf einem neuen Windows-Rechner, Wiederherstellung eines Datenbank-Volumes und Sicherstellung, dass Codeänderungen in einem laufenden Container wirksam werden. Greifen Sie darauf zurück, auch wenn der Benutzer nur etwas Kurzes sagt wie "Docker startet nicht unter Windows", "Soll nach Neustart ausgeführt werden" oder "Pu..."

Was ist Docker auf Windows: Bereitstellen, Ausführen und Reparieren?

Diese Sammlung von Kenntnissen und Referenzdateien löst typische, aber schwer diagnostizierbare Probleme bei der Arbeit mit Docker Compose und Docker Desktop unter Windows 11, insbesondere in einer Netzwerkumgebung in Festland-China. Die enthaltenen Lösungen basieren auf realen Debugging-Erfahrungen und decken Themen ab wie: Wiederherstellung nach einem Absturz von Docker Desktop (z.B. durch verwaiste AF_UNIX-Sockets), Umgehung von Netzwerkblockaden (via Registry-Mirrors, Tsinghua-APT/Pip, ModelScope), Einrichtung des vollautomatischen Startverhaltens nach einem Neustart des Systems (mittels Task Scheduler statt Autostart-Einträgen), Vermeidung von Fehlern in PowerShell-Skripten aufgrund von UTF-8-Codierung und ZIP-Komprimierung sowie Bereitstellungs- und Update-Workflows. Die Referenzen sind als Symptom-Handlungs-Tabellen strukturiert, sodass schnell die passende Lösung gefunden werden kann. Dadurch wird vermieden, dass Entwickler Zeit mit falschen Konfigurationsänderungen oder sich wiederholenden Fehlversuchen verschwenden. Die Sammlung ist nicht anwendungs spezifisch und funktioniert mit jedem Docker-Projekt auf Windows. Sie unterstützt Entwickler und Administratoren, die Docker Desktop auf Windows betreiben und mit Netzwerk-, Start- oder Skriptproblemen kämpfen, sowie Anwender, die nicht immer die technische Tiefe für eigenständige Fehlerbehebung haben.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/rxdage/claude-skills/tree/HEAD/docker-windows-ops

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Docker auf Windows: Bereitstellen, Ausführen und Reparieren?

Diese Fähigkeit enthält mühsam erarbeitetes Betriebswissen aus der Bereitstellung einer Docker-Compose-App für den unbeaufsichtigten, neustartsicheren Produktionsbetrieb auf einem Windows-11-Desktop hinter einem Netzwerk in Festland-China. Die unten aufgeführten Fehler wirken kryptisch, und die Lösungen sind kontraintuitiv – genau deshalb sind sie hier festgehalten. Bevorzugen Sie diese gegenüber dem Raten; jeder einzelne hat echte Debugging-Zeit gekostet.

Hier ist nichts app-spezifisch – das laufende Beispiel war ein Python/FastAPI- + pgvector-Stack, aber die Fallstricke (Docker-Desktop-Sockets, Netzwerkblockaden, Autostart, PowerShell-Kodierung) treffen auf jedes Docker-Projekt unter Windows zu.

Zuerst orientieren, dann handeln

Schnelle Checks, die entscheiden, welche Referenzdatei Sie benötigen:

  • Läuft Docker überhaupt? docker version (Client+Server), docker compose ps. Ein Serverfehler bedeutet meist, dass Docker Desktop beim Start abgestürzt ist → crash-recovery.md.
  • WSL2-Backend intakt? wsl -l -v – die Distribution (z. B. docker-desktop) sollte Running anzeigen.
  • Festland-China-Netzwerk? Wenn Pulls/Downloads timeouten oder TLS-Fehler auftreten, gehen Sie davon aus, dass das Netzwerk blockiert, und wechseln Sie zu china-network.md, bevor Sie Zeit mit Wiederholungen verschwenden.
  • Muss es Neustarts überstehen, ohne dass jemand zusieht? Das ist eine ganze Kette, keine einzelne Einstellung → unattended-operation.md.

Symptom → Referenz

Was Sie sehenLesen Sie
Docker Desktop startet nicht, stürzt im Loop ab oder protokolliert Inference manager / Secrets Engine / listening on unix://… / the file cannot be accessed by the system / syntax is incorrectreferences/crash-recovery.md
docker pull EOF/TLS handshake timeout; pip/apt schlagen in einem Build fehl; wsl --install hängt; winget 0x8a15000f; HuggingFace/Modell-Download 302 zu einem blockierten Hostreferences/china-network.md
Muss nach Neustart ohne menschliches Eingreifen ausgeführt werden (Auto-Login, Autostart, Sperrbildschirm, Neustartrichtlinie), oder „es hat funktioniert, als ich eingeloggt war, aber nicht beim Booten“references/unattended-operation.md
Ein .ps1 verstümmelt Nicht-ASCII-Zeichen, stirbt mit Missing closing '}', tötet seinen eigenen Prozess, oder jeder native Befehl gibt erschreckenden roten Text ausreferences/windows-scripting.md
Bereitstellen auf einer neuen Windows-Box, Wiederherstellen eines DB-Volumes oder „Ich habe den Code bearbeitet, aber der Container hat sich nicht geändert“references/deploy-workflow.md

Grundsätze, die verallgemeinern (überfliegen Sie diese, auch wenn Sie keine Referenz öffnen)

  1. Docker Desktops schlimmster Windows-Fehler ist ein verwaister AF_UNIX-Socket, kein Konfigurationsfehler. Ein harter Stopp (Absturz/erzwungenes Beenden/Stromausfall) hinterlässt nicht löschbare Reparse-Punkt-Socket-Dateien unter %LOCALAPPDATA%\Docker\run\ und %LOCALAPPDATA%\docker-secrets-engine\. Docker versucht, sie beim nächsten Start zu entfernen und neu zu erstellen, und stürzt im Loop ab. Sie können sie nicht löschen (Remove-Item/.NET Delete schlagen beide fehl) – aber Sie können das übergeordnete Verzeichnis umbenennen (ein Metadaten-Vorgang, der den Zugriffsfehler umgeht). Benennen Sie es um, Docker baut sauber neu auf. Das Umschalten von EnableInference/EnableDockerAI behebt es nicht. Siehe crash-recovery.md.

  2. In einem Festland-China-Netzwerk greifen Sie zuerst zu Spiegeln, dann direkt. Docker Hub, winget, Online-wsl --install, deb.debian.org und HuggingFace große Gewichte sind blockiert oder unzuverlässig. Registry-Mirrors, Tsinghua-Pip/Apt, ein Offline-WSL-MSI und ModelScope für Modellgewichte sind die zuverlässigen Wege. desktop.docker.com und GitHub-Releases stellen eine direkte Verbindung her. Siehe china-network.md.

  3. Bei Windows-Auto-Login werden HKCU\...\Run-Autostart-Einträge STILLSCHWEIGEND NICHT ausgeführt. Verwenden Sie stattdessen einen Task Scheduler-Auftrag, der bei Anmeldung ausgelöst wird. Dies ist der mit Abstand größte Stolperstein bei unbeaufsichtigten Einrichtungen. Siehe unattended-operation.md.

  4. Schreiben Sie .ps1-Dateien nur mit ASCII-Zeichen. PowerShell 5.1 liest eine UTF-8-Datei ohne BOM als GBK; jedes Nicht-ASCII-Zeichen (z. B. chinesische Kommentare) beschädigt den Klammerabgleich → Missing closing '}' → das Skript stirbt sofort, ohne ein Protokoll zu hinterlassen. Halten Sie Skripte reinen ASCII; protokollieren Sie auf Englisch. Siehe windows-scripting.md.

  5. Gemounteter Code = Neustart, kein Neubau. Wenn docker-compose.yml das Quellverzeichnis bindet (./:/app), wird eine Codeänderung mit docker compose restart <svc> wirksam – kein Image-Neubau. Bauen Sie nur neu, wenn sich Abhängigkeiten/Dockerfile ändern. Überprüfen Sie Logikänderungen mit einem Wegwerf-docker compose exec <svc> python …-Trockenlauf, bevor Sie den eigentlichen Zeitplan auslösen, damit Sie niemals testen, indem Sie einen Live-Ausgabekanal zuspammen. Siehe deploy-workflow.md.

  6. Beachten Sie Single-Writer-Beschränkungen. Wenn die App nach einem Zeitplan an einen externen Kanal sendet, darf nur ein Rechner den Zeitplan gleichzeitig ausführen – zwei Kopien = doppelte Sendungen. Fahren Sie den alten herunter (docker compose down), bevor Sie den neuen starten.

  7. Claude kann sich nicht stillschweigend Administratorrechte verschaffen. Jede Systemänderung, die eine Erhöhung erfordert, muss vom Menschen in einer UAC-Eingabeaufforderung bestätigt werden (Start-Process -Verb RunAs löst sie aus). Kennzeichnen Sie solche Schritte deutlich als "需手动操作 / manueller Schritt" – der Bediener hier ist chinesischsprachig und infrastrukturschwach und schätzt eine Schritt-für-Schritt-Anleitung mit gekennzeichneten manuellen Momenten. Auto-Berechtigungsmodi blockieren auch ExecutionPolicy Bypass + elevation, umgehen Sie also nicht die Eingabeaufforderung.

So erweitern Sie diese Fähigkeit

Wenn ein neuer, nicht offensichtlicher Windows-/Docker-Fehler gelöst wird, fügen Sie ihn der entsprechenden Referenzdatei hinzu (Symptom → Ursache → die genaue Lösung, die funktioniert hat, und was nicht funktioniert hat). Die Zeile "was nicht funktioniert hat" ist oft der wertvollste Teil – sie verhindert, dass die nächste Person Sackgassen erneut durchläuft.

Verwandte Skills