Docker机器可以使用ssh,但不能使用scp

Docker机器可以使用ssh,但不能使用scp,docker,scp,docker-machine,Docker,Scp,Docker Machine,我开始使用Docker机器,我刚刚看到有一个scp命令。 正如文件所说: $docker machine ssh dev'回显远程创建的文件!>foo.txt' $docker machine scp dev:/home/docker/foo.txt. 我也创建了一个文件,然后: docker机器scp默认值:/home/docker/test.txt。 但我一直面临着状态1 如果我做了相反的操作,并将文件上载到容器中,我将面临与状态1的连接丢失。命令: docker-machine scp m

我开始使用Docker机器,我刚刚看到有一个scp命令。 正如文件所说:

$docker machine ssh dev'回显远程创建的文件!>foo.txt'
$docker machine scp dev:/home/docker/foo.txt.

我也创建了一个文件,然后:

docker机器scp默认值:/home/docker/test.txt。

但我一直面临着状态1

如果我做了相反的操作,并将文件上载到容器中,我将面临与状态1的连接丢失。命令:

docker-machine scp mongo.tar default:mongo.tar

请假设我不是ssh和scp方面的专家。

如果您在Windows上从docker Toolbox运行docker machine,则有一个自动装入的卷,您可以在其中访问主机文件系统。默认情况下,虚拟机的装载点是/c/Users/

我昨天遇到了这个问题,今天找到了一个解决方法(或解决方案?)。这是针对OS X Sierra和截至本文撰写之时的最新Docker和VirtualBox的

通过docker Getting Started docs(),命令:

docker-machine scp docker-compose.yml myvm1:~ 
他立即返回:

Lost connection
Exit Status 1
最后,当我在没有docker机器ssh手持的情况下尝试一个经典的“scp”命令时,我跟踪到了我的/etc/ssh/ssh_配置。“scp”命令立即返回,抱怨以下不兼容行:

GSSAPIKeyExchange no
GSSAPITrustDNS no
我把这些注释掉了,这就缓解了问题,“docker machine scp”能够按预期工作。我没有在别处找到这个解决方案

我的系统细节粘贴在下面。希望这能帮助其他人

操作系统 OS X塞拉酒店 系统版本:macOS 10.12.3(16D32) 内核版本:Darwin16.4.0

码头工人 客户: 版本:17.05.0-ce API版本:1.29 Go版本:go1.7.5 Git提交:89658be 建造时间:2017年5月4日星期四21:43:09 OS/Arch:darwin/amd64

服务器: 版本:17.05.0-ce API版本:1.29(最低版本1.12) Go版本:go1.7.5 Git提交:89658be 建造时间:2017年5月4日星期四21:43:09 OS/Arch:linux/amd64 实验性的:真的

虚拟机
版本5.1.22 r115126

此呼叫对我有效:

scp xxxdocker@192.168.99.100:~


默认密码是
tcuser
;或者,您可以使用上面答案中提到的装载点。

如果您想从主机复制到节点计算机,您可以按照以下步骤操作:

sudo docker机器scp节点1:/home/docker/receive/


将docker文件从主机复制到manager节点是一个非常重要的命令。Docker伙计们,请将此命令添加到Docker文档中。

对于第二个测试,您可以尝试指定完整路径吗<代码>默认值:/full/path/to/mongo.tar
docker machine scp mongo.tar默认值:/home/docker/mongo.tar
输出相同的结果(与状态1的连接中断)docker machine日志显示了什么?(可能在“.docker\machine\machines\default\default\Logs”中)在VBox.log中,没有什么特别的。最后一行是:
00:00:36.451922 VMMDev:Guest Log:00:00:10.010830 vminfo错误:无法连接到系统D-Bus(3/3):D-Bus未安装
,但我看不到任何与scp相关的内容谢谢,这对docker机器13.0中的scp被破坏有很大帮助。请解释一下为什么这样做?此外,通常不建议发布服务器IP和密码;这里我们只需要一个默认的用户名(不是总是这样的)。当然,作为OP,您最有能力理解发布此类信息的任何风险(我怀疑这里发布的信息都不是私人的)。尽管如此,以防你不熟悉,这是需要注意的。我检查过了,而且特定的服务器确实有防火墙过滤所有端口。@Greenstick谢谢你的建议。我知道在这里发布服务器IP和密码很危险,所以我只发布了一个公共密码和一个内网IP,我认为这对我和其他人来说都很安全。我只是想帮助其他人解决这个问题,至少这是一个解决方案。尽管如此,我会对此更加小心。再次感谢您的修改和有用的建议。我之所以这么做是因为它在docker环境中,而不是docker机器中。