docker-机器在 windows 10 - "You must have a copy of the scp binary locally to use the scp feature"

docker-machine on windows 10 - "You must have a copy of the scp binary locally to use the scp feature"

我正在使用命令: docker-机器scp管理器:/home/docker/foo.txt .

但是,Windows PowerShell return "You must have a copy of the scp binary locally to use the scp feature".

我确定我已经安装了 'docker for windows' 和“docker 工具箱”。那我该怎么办呢?

我在 Windows 8.1 上也遇到了类似的问题。我使用Git Bash(在管理员模式下)而不是Powershell来解决它。

我通过使用我已经安装的名为 pscp.exe 的 Putty scp 程序解决了这个问题。

(最初我尝试将 'pscp' 重命名为 'scp',但这不起作用,因为 docker 引擎使用 -o 选项发送 SSH 命令。'pscp' 没有 -o 选项。)

您可以直接在命令行中使用pscp。首先找出VM的IP地址:

docker-machine env <VM_name>

您的虚拟机名称是 'manager'。从 $Env:DOCKER_HOST 变量中取出 ip 地址(不带端口)。例如:

$Env:DOCKER_HOST = "tcp://192.168.XXX.XXX:2376"

然后使用pscp发送文件:

pscp <file_to_send> docker@<ip_address_of_VM>:/home/docker/foo.txt

系统将提示您输入 'docker' 用户的密码。我发现 docker 使用默认密码“tcuser”,我这样做时它有效。

如果您碰巧安装了 Git for Windowsdocker-machine scp 将 运行 在 Git Bash 中成功 Bash。

我在 Windows 10[=16 上使用 Visual Studio Code 版本 1.14.0(作为管理员)遇到了同样的问题=].使用 Git Bash(作为管理员)。

与其试图绕过这个问题,不如直接解决它?

很可能,如果您安装了 Git Bash,那么您的机器上已经安装了 scp.exe,所以您需要做的就是是将 scp.exe 所在的文件夹添加到您的 PATH 环境变量中。

在我的例子中 scp.exe 位于 C:\Program Files\Git\usr\bin

这为我解决了同样的问题