0

ich verwende Docker für Windows. Wenn ich versuche, alle meine Bilder mit diesem Befehl zu entfernen:Docker kann nicht alle Bilder entfernen

docker rmi $(docker images -q) 

bekam ich diese Fehlermeldung in Eingabeaufforderung:

unknown shorthand flag: 'q' in -q) 

Ich bin mit Docker auf Fenster 10 pro

+0

welche Version von Docker ist es? Sie können dies herausfinden, indem Sie 'docker version' ausführen. Versuchen Sie auch, den '-q' Parameter durch' --quiet' zu ersetzen. –

Antwort

0

Blick bei ähnlichen issue. Die von Ihnen verwendete Syntax ist unix-spezifisch docker rmi $(command). Dies nennt sich command substitution und wird wahrscheinlich nicht in Windows funktionieren.

0

In den Fenstern sollten Sie Windows-Befehl.

In Powershell, wird es so etwas wie:

docker images -a -q | foreach-object { $i = $PSItem.ToString(); $cmd = "docker"; & $cmd "rmi" $i } 

Wo

Docker Bilder

erhält die IDs aller Bilder (einschließlich Zwischen) -q -a und

foreach-Objekt {$ i = $ PSItem.ToString(); $ cmd = "docker"; & $ cmd "rmi" $ i}

löschen one-by-one

+0

"'foreach-object' wird nicht als interner oder externer Befehl erkannt, ausführbare Programm- oder Batch-Datei." Von der Befehlszeile – Lee

+0

laufen Sie von der Powershell? – evgenyl

0

dass ein Bash-Shell-Syntax ist, die auf Linux installiert von Docker funktionieren würde. Um es unter Windows zum Laufen zu bringen, versuchen Sie, die Bash-Shell unter Windows zu installieren und sie innerhalb dieser Shell auszuführen. Die Windows-Eingabeaufforderung und Powershell werden diese Syntax nicht verstehen.

1

Die Syntax ist unixspezifisch, Sie ändern also Ihren Befehl für Windows und Sie müssen den gesamten Befehl in PowerShell oder CMD ausführen.

Entfernen Behälter:

powershell "docker ps -a -q | foreach-object { $i = $PSItem.ToString(); $cmd = 'docker'; & $cmd 'rm' '-f' $i }" 

entfernen Bilder:

powershell "docker images -a -q | foreach-object { $i = $PSItem.ToString(); $cmd = 'docker'; & $cmd 'rmi' '-f' $i }" 
Verwandte Themen