如何ssh到docker机器VirtualBox实例中?

如何ssh到docker机器VirtualBox实例中?,docker,docker-machine,Docker,Docker Machine,docker机器版本0.2.0 docker版本1.6.2 我正在使用。一切正常,但我想ssh到机器本身,我没有找到如何做到这一点的说明。我可以连接到ssh端口: ssh $(docker-machine ip dev) 但是我不知道使用什么用户名/密码/身份文件。您只需运行 docker-machine ssh default (此处使用“默认”主机) 标识文件应存储在~/.docker/machine/machines下。如果要登录到容器(与主机相反),请按照用户2915097的建议使用

docker机器版本0.2.0 docker版本1.6.2

我正在使用。一切正常,但我想ssh到机器本身,我没有找到如何做到这一点的说明。我可以连接到ssh端口:

ssh $(docker-machine ip dev)

但是我不知道使用什么用户名/密码/身份文件。

您只需运行

docker-machine ssh default
(此处使用“默认”主机)


标识文件应存储在
~/.docker/machine/machines
下。如果要登录到容器(与主机相反),请按照用户2915097的建议使用
docker exec

最后,我找到了一个答案:

我在Windows上使用Docker工具箱(Docker机器)

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

主机:本地主机
端口:51701
用户:docker
密钥:.docker\machine\machines\default\id\u rsa


当我更改Putty/MobaXterm设置以匹配时,瞧,我可以通过SSH将其放入容器中。

如果您确实需要通过SSH
SSH
,这是docker 1.8.2

初始化docker:

eval "$(docker-machine env default)"
从默认docker计算机获取IP:

docker-machine ip default
这会打印出如下内容:
192.168.99.100

ssh docker@192.168.99.100

密码是
tcuser
,但您也可以使用身份文件,请参阅其他答案如果出于某种原因您宁愿使用
ssh
命令而不是
docker machine ssh
,您可以这样做

ssh `docker-machine ip machine_name` -ldocker -i ~/.docker/machine/machines/machine_name/id_rsa

对于黑客来说,这里有一个脚本,它将ssh连接到“活动”docker机器中。这还为您提供了ssh_密钥、ssh_端口和ssh_用户的值,从而可以在本地主机和虚拟机之间执行类似于
rsync
的操作

#!/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

你可以把它复制粘贴到你的终端上,一行接一行,它会工作的。或者,将脚本放入函数中,并将其名称作为参数输入。

对于mac OX,机器及其密钥位于此处(请确保您的密钥位于此处,如下所示:

~/project/dev/docker_notes za$ ls /Users/za/.docker/machine/machines/default/
.DS_Store        ca.pem           config.json      disk.vmdk        id_rsa.pub       server-key.pem
boot2docker.iso  cert.pem         default/         id_rsa           key.pem          server.pem
1) 列出可用的虚拟机

> ~/project/dev/docker_notes za$ docker-machine ls
>     NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
>     default   -        virtualbox   Running   tcp://192.168.99.100:2376           v1.11.0
在我的例子中,机器的名称是默认的。所以,只是

~/project/dev/docker_notes za$ docker-machine ssh default


                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.11.0, build HEAD : 32ee7e9 - Wed Apr 13 20:06:49 UTC 2016
Docker version 1.11.0, build 4dc5990
docker@default:~$ vi 
.ash_history  .ashrc        .docker/      .local/       .profile      .ssh/         log.log
docker@default:~$ ls
log.log

您也可以按照此操作>

我们也可以通过以下命令ssh到docker中-


docker exec-it/bin/sh

您可以使用终端上使用的普通synatx 登录名:docker&&pasword:tcuser

例如:sshdocker@192.168.99.X
pw:tcuser

如果你-1发表评论,解释这个问题的错误,并允许提问者修改。推荐的docker容器内部连接方式是
docker exec-it my_container/bin/bash
参见doc@user2915097问题是ssh到机器本身,而不是docker container大量docker问题如果他们没有节目内容,就投否决票。可以说,这个问题应该在SF上,但这真的是一个判断电话。嘿,谢谢。在结果上找到你的答案。把我从几个小时的挫折中解救出来+1另外,我的SSH端口是58361。使用-D标志时,将打印所有必需的详细信息<代码>使用SSH客户端类型:外部{[-o BatchMode=yes-o PasswordAuthentication=no-o StrictHostKeyChecking=no-o UserKnownHostsFile=/dev/null-o LogLevel=quiet-o connectionattents=3-o ConnectTimeout=10-o ControlMaster=no-o ControlPath=nonedocker@127.0.0.1-o identiesonly=yes-ic:\Users\\.docker\machine\machines\default\id\u rsa-p 58361]C:\Program Files\Git\usr\bin\ssh.exe}
我可以从
docker machine inspect
获取它?它在
Driver->IPAddress
变量中打印了非本地地址。我很好奇您是如何知道密码是
tcuser
。你能透露你的秘密吗?:-)可以在其他地方找到,但您也可以在这里看到:因此,我有另一台电脑(与用于设置远程主机的电脑不同),我希望能够通过这台电脑上的docker机器访问它(就像我正在使用的电脑一样)。我该怎么办?
docker@default:~$ uname -a
Linux default 4.1.19-boot2docker #1 SMP Thu Apr 7 02:41:05 UTC 2016 x86_64 GNU/Linux