Kann mir jemand zeigen, wie ich ein Docker-Image in Windows 10 ausführe? Bitte sagen Sie mir nicht, dass ich ein Tutorial lesen soll, es gibt einen Grund, warum ich frage.
Ich habe Docker für Windows bereits installiert. In allen Tutorials heißt es: „Verwenden Sie das Docker Quickstar-Terminal“. Das gibt es jedoch nicht. Es gibt lediglich Docker Desktop.
Ich kann "docker ps" in jedem Terminal ausführen, zum Beispiel Git bash oder im Windows-Terminal (Eingabeaufforderung). Ich möchte dies jedoch ausführen
docker run -it -p 4567:4567 -v 'pwd':/work udacity/controls_kit:latest
wenn ich dies auf Git Bash mache, erhalte ich die folgende Fehlermeldung:
the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
und wenn ich dies in der Eingabeaufforderung mache, bekomme ich
docker: Error response from daemon: create 'pwd': "'pwd'" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
See 'docker run --help'.
Wie führt man ein Container-Image unter Windows 10 richtig aus?
Antwort1
So nah!
Sie versuchen, den Befehl auszuwerten pwd
und sein Ergebnis als Teil des Docker-Aufrufs zu verwenden. Dies geschieht mitBacktick (Rückstrich)Symbole (auchGravis). Auf einer US-Tastatur können Sie sie mit der Schaltfläche über Tabneben eingeben 1. Derzeit verwenden Sie (falsch) einfache Anführungszeichen, die zum Zitieren normaler Zeichenfolgen verwendet werden.
Im Idealfall sollten Sie $(pwd)
anstelle von verwenden `pwd`
. Es bewirkt dasselbe, ist aber vorhersehbarer, wenn es verschachtelt ist, und es ist schwieriger, es mit etwas anderem zu verwechseln.
# should work:
winpty docker run -it -p 4567:4567 -v `pwd`:/work udacity/controls_kit:latest
# even better:
winpty docker run -it -p 4567:4567 -v $(pwd):/work udacity/controls_kit:latest
Sie benötigen das winpty
Präfix, da Docker unter Windows mit der Standardkonfiguration ausgeführt wird. Sie können dieses Verhalten während der Installation ändern. Unter Windows 10 ist eine Änderung wahrscheinlich eine gute Idee, da die verbesserte Befehlszeile keine Einschränkungen aufweist, die mit dieser Funktion überwunden werden sollen.