【问题标题】:Docker Machine can ssh but not scp [closed]Docker Machine可以ssh但不能scp [关闭]
【发布时间】:2016-01-14 20:45:22
【问题描述】:

我开始使用 Docker Machine,我刚刚看到有一个 scp 命令。 就像文档说的:

$ docker-machine ssh dev 'echo A file created remotely! >foo.txt' $ docker-machine scp dev:/home/docker/foo.txt .

我通过创建一个文件来做同样的事情,然后:

docker-machine scp default:/home/docker/test.txt .

但我一直面临状态 1。

如果我执行相反的操作,并将文件上传到容器,我将面临状态为 1 的丢失连接。命令:

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

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

【问题讨论】:

  • 对于第二个测试,您可以尝试指定完整路径吗? default:/full/path/to/mongo.tar
  • docker-machine scp mongo.tar default:/home/docker/mongo.tar 输出相同的结果(与状态 1 失去连接)
  • docker 机器日志说什么? (可能在`.docker\machine\machines\default\default\Logs`)
  • 在 VBox.log 中,没什么特别的。最后一行是:00:00:36.451922 VMMDev: Guest Log: 00:00:10.010830 vminfo Error: Unable to connect to system D-Bus (3/3): D-Bus not installed 但我看不到任何与 scp 相关的内容

标签: docker scp docker-machine


【解决方案1】:

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

【讨论】:

  • 谢谢,这对 docker-machine 13.0 中的 scp 被破坏有很大帮助
【解决方案2】:

这个电话对我有用:

scp xxx docker@192.168.99.100:~

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

【讨论】:

  • 您能解释一下为什么会这样吗?此外,通常不建议发布服​​务器 IP 和密码;我们在这里只需要一个默认用户名(并非总是如此)。当然,作为 OP,您最有能力了解发布此类信息的任何风险(我怀疑此处发布的信息都不是私人信息)。尽管如此,以防万一您不熟悉,这是需要注意的。我检查了,特定服务器确实有过滤所有端口的防火墙。
  • @Greenstick 感谢您的建议。我知道在这里发布服务器IP和密码很危险,所以我只是发布一个公共密码和一个内网IP,我认为这对我和其他人来说非常安全。我只是想帮助别人解决这个问题,至少它是解决方案之一。尽管如此,我会更加小心。再次感谢您的修改和有用的建议。我这样做是因为它在 docker 环境而不是 docker-machine 中。
【解决方案3】:

我昨天遇到了这个问题,今天找到了解决方法(或解决方案?)。在撰写本文时,这是特定于 OS X Sierra 和最新的 Docker 和 VirtualBox。

通过 docker 入门文档 (https://docs.docker.com/get-started/part4/#create-a-cluster),命令:

docker-machine scp docker-compose.yml myvm1:~ 

立即返回:

Lost connection
Exit Status 1

最后,当我尝试一个没有 docker-machine ssh 手持的经典“scp”命令时,我将其追踪到我的 /etc/ssh/ssh_config。 “scp”命令立即返回,抱怨以下不兼容的行:

GSSAPIKeyExchange no
GSSAPITrustDNS no

我将这些注释掉了,这缓解了问题,并且“docker-machine scp”能够按预期工作。我没有在其他地方找到这个解决方案。

我的系统细节粘贴在下面。希望这可以帮助那里的人。

操作系统

OS X Sierra 系统版本:macOS 10.12.3 (16D32) 内核版本:达尔文 16.4.0

码头工人

客户: 版本:17.05.0-ce API版本:1.29 围棋版本:go1.7.5 Git 提交:89658be 建成时间:2017 年 5 月 4 日星期四 21:43:09 操作系统/架构:darwin/amd64

服务器: 版本:17.05.0-ce API 版本:1.29(最低版本 1.12) 围棋版本:go1.7.5 Git 提交:89658be 建成时间:2017 年 5 月 4 日星期四 21:43:09 操作系统/架构:linux/amd64 实验:是的

虚拟盒子

版本 5.1.22 r115126

【讨论】:

    【解决方案4】:

    如果你想从主机复制到节点机器,你可以这样做:

    sudo docker-machine scp node1:/home/docker/receive/

    将 docker 文件从主机复制到管理器节点是一个非常重要的命令。码头工人请将此命令添加到码头工人文档中。

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 2018-06-29
      • 2017-11-18
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      • 2013-09-07
      相关资源
      最近更新 更多