Search code examples
vagrantdockerboot2docker

How do I SSH into the boot2docker host vm that the Vagrant 1.6 Docker Provider sets up?


I'm on OSX and I'd like to be able to SSH into the host vm in order to:

  1. Get access to a native docker environment. This facilitates understanding and debugging port forwarding issues.
  2. Vagrant rsync seems to leave a lot of unused synced directories that's eating up disk space that I'd like to recover.

To be clear, this question is NOT about ssh:ing into the docker containers that the Vagrant provider creates, but into the intermediate boot2docker host vm that Vagrant creates.

I know that a workaround is to not use the default boot2docker as the host vm (as explained in the answer here), but that's not what this question is about.


Solution

  • Vagrant's boot2docker keeps boot2docker's ssh username and password.

    SSH into VM

    $ boot2docker ssh
    

    Boot2Docker auto logs in using the generated SSH key, but if you want to SSH into the machine manually (or you're not using a boot2docker managed VM), the credentials are:

    user: docker
    pass: tcuser
    

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

    The port is forwarded from the local port 2022 by default. You can verify this:

    $ 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
    

    And then login:

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