我正在使用命令:docker-machine scp manager:/home/docker/foo.txt。
但是,Windows PowerShell 返回“您必须在本地拥有 scp 二进制文件的副本才能使用 scp 功能”。
我确定我已经安装了“docker for windows”和“docker toolbox”。所以我该怎么做?
我正在使用命令:docker-machine scp manager:/home/docker/foo.txt。
但是,Windows PowerShell 返回“您必须在本地拥有 scp 二进制文件的副本才能使用 scp 功能”。
我确定我已经安装了“docker for windows”和“docker toolbox”。所以我该怎么做?
我在 Windows 8.1 上也遇到了类似的问题。我使用 Git Bash(在管理员模式下)而不是 Powershell 来解决它。
与其试图绕过这个问题,为什么不直接解决呢?
scp.exe
如果你安装了Git Bash ,很可能你的机器上已经有了,所以你需要做的就是将所在的文件夹添加scp.exe
到你的PATH
环境变量中。
在我的情况下scp.exe
位于C:\Program Files\Git\usr\bin
这为我解决了同样的问题
我在Windows 10上使用Visual Studio Code版本 1.14.0(作为管理员)遇到了同样的问题。使用Git Bash(以管理员身份)。
如果您碰巧安装了 Windows 版 Git,docker-machine scp
将在 Git Bash 中成功运行。
我通过使用我已经安装的名为 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 ”,当我这样做时它就起作用了。