如何ssh到docker-machine VirtualBox实例?

Roy*_*ove 80 docker docker-machine

docker-machine version 0.2.0 docker version 1.6.2

我正在使用docker-machine来使用VirtualBox创建一台机器.一切正常,但我想ssh到机器本身,我没有找到如何做到这一点的说明.我可以连接到ssh端口:

ssh $(docker-machine ip dev)
Run Code Online (Sandbox Code Playgroud)

但我不知道要使用哪个用户名/密码/身份文件.

Adr*_*uat 117

您只需运行即可登录docker-machine主机

docker-machine ssh default
Run Code Online (Sandbox Code Playgroud)

(在这里使用"默认"主机)

身份文件应存储在~/.docker/machine/machines.如果要登录容器(而不是主机),请docker exec按user2915097的建议使用.


tim*_*hew 69

如果你真的需要通过它ssh,这是使用docker 1.8.2

init docker:

eval "$(docker-machine env default)"
Run Code Online (Sandbox Code Playgroud)

从默认的docker机器获取IP:

docker-machine ip default
Run Code Online (Sandbox Code Playgroud)

这打印出这样的东西: 192.168.99.100

ssh docker@192.168.99.100
Run Code Online (Sandbox Code Playgroud)

密码是tcuser但您也可以使用身份文件,请参阅其他答案

  • 我很好奇你如何知道密码是```tcuser```.你能透露你的秘密吗?:-) (8认同)
  • 发现在其他地方,但你也可以在这里看到它:https://github.com/docker/machine/search?utf8 =%E2%9C%93&q = tcuser (2认同)
  • 这是一个关于这个主题的问题:https://github.com/docker/machine/issues/1615 (2认同)

Jef*_*ein 25

最后,我找到了答案:

我在Windows上使用Docker Toolbox(Docker Machine).

如果我docker-machine -D ssh default,我发现SSH参数应该是:

主机:localhost
端口:51701
用户:docker
密钥:.docker\machine\machines\default\id_rsa

当我改变我的Putty/MobaXterm设置以匹配时,我可以通过SSH进入容器.


rob*_*ert 10

对于那里的黑客,这里有一个脚本,它将进入"活动"的docker-machine.这也为ssh_key,ssh_port和ssh_user提供了值,使得可以rsync在localhost和VM之间执行操作.

#!/bin/bash
docker_machine_name=$(docker-machine active)
docker_ssh_user=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHUser}})
docker_ssh_key=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHKeyPath}})
docker_ssh_port=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHPort}})

ssh -i $docker_ssh_key -p $docker_ssh_port $docker_ssh_user@localhost
Run Code Online (Sandbox Code Playgroud)

你可以将它复制并粘贴到你的终端,换行,它就可以了.或者,将脚本转换为函数,并将其作为参数提供给它.


ejo*_*aud 5

如果出于某种原因,您宁愿使用ssh命令而不是docker-machine ssh,则可以执行

ssh `docker-machine ip machine_name` -ldocker -i ~/.docker/machine/machines/machine_name/id_rsa
Run Code Online (Sandbox Code Playgroud)