一尘不染

如何通过SSH进入Vagrant 1.6 Docker Provider设置的boot2docker主机虚拟机?

docker

我在OSX上,并且希望能够通过SSH进入主机vm,以便:

  1. 获得对本地Docker环境的访问权限。这有助于理解和调试端口转发问题。
  2. 流浪的rsync似乎留下了许多未使用的同步目录,这些目录正在吞噬我想恢复的磁盘空间。

明确地说,这个问题不是关于ssh:进入Vagrant提供程序创建的docker容器,而是到Vagrant创建的中间boot2docker主机vm。

我知道,一个解决方法是不使用默认的boot2docker作为主机VM(如答案解释这里,但这不是这个问题是关于什么的。


阅读 450

收藏
2020-06-17

共1个答案

一尘不染

Vagrant的boot2docker保留了boot2docker的ssh用户名和密码。

SSH进入虚拟机

$ boot2docker ssh

Boot2Docker使用生成的SSH密钥自动登录,但是如果要手动SSH进入计算机(或者您不使用boot2docker托管VM),则凭据为:

user: docker
pass: tcuser

https://github.com/boot2docker/boot2docker#ssh-into-
vm

2022默认情况下,端口是从本地端口转发的。您可以验证以下内容:

$ VBoxManage list vms | grep docker
"docker-host_default_1234567890000_1234" {3d66ecf6-4539-47ca-afd2-66f953cd9a3e}
$ VBoxManage showvminfo docker-host_default_1234567890000_1234 | grep ssh
NIC 1 Rule(1):   name = ssh, protocol = tcp, host ip = 127.0.0.1, host port = 2022, guest ip = , guest port = 22

然后登录:

$ ssh docker@localhost -p 2022
docker@localhost's password: tcuser
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
             \    \        __/
              \____\______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
boot2docker: 0.8.0
docker@boot2docker:~$
2020-06-17