4

我正在使用命令:docker-machine scp manager:/home/docker/foo.txt。

但是,Windows PowerShell 返回“您必须在本地拥有 scp 二进制文件的副本才能使用 scp 功能”。

我确定我已经安装了“docker for windows”和“docker toolbox”。所以我该怎么做?

4

5 回答 5

4

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

于 2017-03-08T20:16:09.397 回答
2

与其试图绕过这个问题,为什么不直接解决呢?

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

在我的情况下scp.exe位于C:\Program Files\Git\usr\bin

这为我解决了同样的问题

于 2017-07-21T06:44:32.340 回答
1

我在Windows 10上使用Visual Studio Code版本 1.14.0(作为管理员)遇到了同样的问题。使用Git Bash(以管理员身份)。

于 2017-07-13T15:52:21.963 回答
1

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

于 2017-05-01T09:05:21.973 回答
0

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

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

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

docker-machine env <VM_name>

在您的情况下,VM 名称是“经理”。从 $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 ”,当我这样做时它就起作用了。

于 2017-04-25T06:37:45.403 回答