错误: "docker context create"命令需要且只接受1个参数。

8
我正在尝试使用Docker Context通过docker-compose部署应用程序。我正在使用这个指南:https://www.docker.com/blog/how-to-deploy-on-remote-docker-hosts-with-docker-compose/ 问题出现在我尝试创建上下文时,例如: docker context create test --docker "host=ssh://user@remotehost",我得到了这个错误信息:"docker context create"需要确切的1个参数。请参见'docker context create --help'。
这仅发生在Windows WSL上,在Linux上它可以完美地工作。
我正在使用启用实验性功能的docker19.03.8

我会仔细检查 WSL 中的 Docker 客户端版本,并确保它与您在其他 Linux 中使用的版本相匹配。 - Zeitounator
它们是相同的。 - Raul
你最终解决了这个问题吗? - A G
2
@AG 是的,命令中有一些隐藏字符。我刚刚重新输入了所有内容,然后它就可以工作了。不知道它们是怎么出现的。 - Raul
3个回答

32

这是由于破折号导致的。比较这两个命令(注意在“docker”之前有两个破折号)

错误的命令:
docker context create test --docker "host=ssh://user@remotehost"

成功的命令:
docker context create test ‐‐docker "host=ssh://user@remotehost"

这些破折号看起来相同,但它们具有不同的字符编码,命令行解释器将其视为字母。


1
是的,我也遇到过这个问题,从网上复制粘贴,谢谢 :) - dmirkitanov
3
请问您能否解释一下这两行文字有什么不同之处?在我看来它们完全相同。 - Mai Elshiashi
@MaiElshiashi 当 utf-8 解码时 <br/> ‐‐docker(命令失败)<br/> \xE2\x80\x90\xE2\x80\x90\x64\x6F\x63\x6B\x65\x72 <br/> --docker(命令成功)<br/> \x2D\x2D\x64\x6F\x63\x6B\x65\x72<br/>底部的破折号使其变灰,表明它是 vscode pwd 中的选项 - ccppoo
即使复制你的“成功命令”也不起作用,但是用破折号代替复制/粘贴解决了我的问题。非常感谢。 - undefined

2

我的情况(M1 Mac)有两个问题合并在一起。奇怪的是,从网页上复制的符号加上跳过引号:

docker context create --docker host=ssh://user@ip xxx

希望这能有所帮助。

0

也许Judah的意思是这样的@Raul docker context create --docker "host=ssh://user@remotehost test ? 您可以在链接的文档中看到类似的示例。 - cam
是的,我知道。结果相同。 - Raul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接