Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 843
Motin Avatar asked Jun 18 '14 12:06

Motin


3 Answers

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:~$ 
like image 69
David256 Avatar answered Nov 19 '22 11:11

David256


Oct 2015: Boot2docker is deprecated in favor of docker-machine. To login:

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default   *        virtualbox   Running   tcp://192.168.99.100:2376   

$ docker-machine ssh default
like image 15
Jim Soho Avatar answered Nov 19 '22 13:11

Jim Soho


You can ssh into docker host with vagrant ssh docker-host-id but first you need to know the docker-host-id.
You can get a list of all active Vagrant environments with vagrant global-status command.
To get the docker-host id you can filter with grep:

vagrant global-status | grep docker-host

you'll obtain an output similar to:

68f58d0  default  virtualbox running   /Users/yourUser/.vagrant.d/data/docker-host

copy the first column id, and then ssh into docker-host:

vagrant ssh 68f58d0

vagrant global status docs

like image 11
alfonsodev Avatar answered Nov 19 '22 13:11

alfonsodev