docker 命令在 PowerShell 中不起作用(Windows 10 Home)?
docker command does not work in PowerShell (Windows 10 Home)?
嗯,。
我正在学习本教程:
https://learnk8s.io/blog/installing-docker-and-kubernetes-on-windows
我正处于应该在 PowerShell 中执行以下命令的步骤:
@FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
我收到这个错误:
En línea: 1 Carácter: 7
+ @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
+ ~
Debe proporcionar una expresión de valor después del operador '/'.
En línea: 1 Carácter: 7
+ @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
+ ~
Token 'f' inesperado en la expresión o la instrucción.
En línea: 1 Carácter: 53
+ @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
+ ~
Token no reconocido en el texto de origen.
En línea: 1 Carácter: 1
+ @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
+ ~~~~
El operador de expansión '@' no se puede usar para hacer referencia a variables en una expresión. '@FOR' solamente se
puede usar como argumento para un comando. Para hacer referencia a variables en una expresión, use '$FOR'.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression
所以,我决定使用 cmd 继续本教程。我终于可以完成教程了。
我认为 PowerShell 中的第一个序列命令因语法相关问题而失败。但我不明白为什么 docker ps
命令失败
在 PowerShell 中。我在 PowerShell 中收到以下错误:
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
我想知道为什么 docker 命令在我的 PowerShell window 中不起作用?
PD:我使用管理员权限打开 PowerShell。
更新 1
根据@BACON 的建议我执行了这个命令序列:
@FOR /f "tokens=*" %i IN ('minikube docker-env') DO %i
但是我得到一个错误:
更新 2
正如用户在评论中所说。教程中提到的用于启动 minikube 的命令在 cmd 中有效,但在 PowerShell 中无效。如果我们考虑到这一点,教程就可以顺利完成。
嗯,我解决了我的问题 运行在 cmd 中的命令在 Power 中没有Shell。
在Windows中启动docker的命令在cmd(Windows10家庭版)中运行是:
@FOR /f "tokens=*" %i IN ('minikube docker-env') DO %i
如果你想运行docker在PowerShell,你应该执行这个命令:
minikube -p minikube docker-env | Invoke-Expression
在我执行命令时的情况下 minikube docker-env
:
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.99.101:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\Cesar\.minikube\certs"
$Env:MINIKUBE_ACTIVE_DOCKERD = "minikube"
# To point your shell to minikube's docker-daemon, run:
# & minikube -p minikube docker-env | Invoke-Expression
PD:我正在使用 minikube
嗯,
我正在学习本教程:
https://learnk8s.io/blog/installing-docker-and-kubernetes-on-windows
我正处于应该在 PowerShell 中执行以下命令的步骤:
@FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
我收到这个错误:
En línea: 1 Carácter: 7
+ @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
+ ~
Debe proporcionar una expresión de valor después del operador '/'.
En línea: 1 Carácter: 7
+ @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
+ ~
Token 'f' inesperado en la expresión o la instrucción.
En línea: 1 Carácter: 53
+ @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
+ ~
Token no reconocido en el texto de origen.
En línea: 1 Carácter: 1
+ @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
+ ~~~~
El operador de expansión '@' no se puede usar para hacer referencia a variables en una expresión. '@FOR' solamente se
puede usar como argumento para un comando. Para hacer referencia a variables en una expresión, use '$FOR'.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression
所以,我决定使用 cmd 继续本教程。我终于可以完成教程了。
我认为 PowerShell 中的第一个序列命令因语法相关问题而失败。但我不明白为什么 docker ps
命令失败
在 PowerShell 中。我在 PowerShell 中收到以下错误:
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
我想知道为什么 docker 命令在我的 PowerShell window 中不起作用?
PD:我使用管理员权限打开 PowerShell。
更新 1
根据@BACON 的建议我执行了这个命令序列:
@FOR /f "tokens=*" %i IN ('minikube docker-env') DO %i
但是我得到一个错误:
更新 2
正如用户在评论中所说。教程中提到的用于启动 minikube 的命令在 cmd 中有效,但在 PowerShell 中无效。如果我们考虑到这一点,教程就可以顺利完成。
嗯,我解决了我的问题 运行在 cmd 中的命令在 Power 中没有Shell。
在Windows中启动docker的命令在cmd(Windows10家庭版)中运行是:
@FOR /f "tokens=*" %i IN ('minikube docker-env') DO %i
如果你想运行docker在PowerShell,你应该执行这个命令:
minikube -p minikube docker-env | Invoke-Expression
在我执行命令时的情况下 minikube docker-env
:
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.99.101:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\Cesar\.minikube\certs"
$Env:MINIKUBE_ACTIVE_DOCKERD = "minikube"
# To point your shell to minikube's docker-daemon, run:
# & minikube -p minikube docker-env | Invoke-Expression
PD:我正在使用 minikube