docker / machine

Machine management for a container-centric world
https://docs.docker.com/machine/
Apache License 2.0
6.63k stars 1.96k forks source link

virtualbox: intermittent machine create fails #479

Closed ramschmaerchen closed 9 years ago

ramschmaerchen commented 9 years ago

If running --virtualbox-disk-size docker-machine create on OSX, no new docker machines can be generated anymore. To resolve, .docker needs to be deleted.

After deleting .docker, creating a machine works flawlessly again.

Please see my first comment for updated information

Behaviour

Most of the times, docker-machine --virtualbox-disk-size waits endlessly for VM to start, although it was started already (regarding to virtualbox).

Stopping the start process, docker ls shows the instance as running, without URL however:

dockermachine ls
NAME     ACTIVE   DRIVER       STATE     URL
mine            virtualbox   Running
    dockermachine config mine
    Bad port '0'
    FATA[0000] Error getting machine url: exit status 255
ehazlett commented 9 years ago

thanks for reporting. I just confirmed this is working. Can you paste the exact create command you used?

ehazlett commented 9 years ago

@ramschmaerchen there was a bug with the way the cli args were processed. could you try this again from master and see if it still errors? thx

ramschmaerchen commented 9 years ago

Ok, I tried to investigate this issue further.

First of all, master did not fix it.

Specs

Investigation

Step by step

Conclusion

The only thing I could see was, that non-working machines are generating a new certificate in the docker init process on every boot.

Side effects

Both, working and non-working machines, fail on ipv6

sthulb commented 9 years ago

The IPv6 support in machine for virtual box doesn't exist, I'm not sure anyone has tried yet.

But we should look into why this is failing. I'd also like to see unified arguments for drivers. There's no reason drivers can't share flags. Things like disk size, ram and auth credentials could be reused.

ehazlett commented 9 years ago

+1 sthulb

@ramschmaerchen could you also run the command with debug (docker-machine -D create -d virtualbox ...). This will help us troubleshoot as well.

ramschmaerchen commented 9 years ago

Sure. I censored keys and stuff but made sure the keys and names are the same (same name for same key)

Working machine

dockermachine -D create -d virtualbox dev

INFO[0001] Creating SSH key... DEBU[0001] executing: /usr/bin/ssh-keygen ssh-keygen -t rsa -N -f /Users/thisuser/.docker/machines/dev/id_rsa

Generating public/private rsa key pair. Your identification has been saved in /Users/thisuser/.docker/machines/dev/id_rsa. Your public key has been saved in /Users/thisuser/.docker/machines/dev/id_rsa.pub. The key fingerprint is: foobar thisuser@localhost The key's randomart image is: +--[ RSA 2048]----+ | foobar | +-----------------+ INFO[0001] Creating VirtualBox VM... DEBU[0001] Creating 20000 MB hard disk image... Converting from raw image file="stdin" to file="/Users/thisuser/.docker/machines/dev/disk.vmdk"... Creating dynamic image with size 20971520000 bytes (20000MB)... DEBU[0017] executing: VBoxManage createvm --basefolder /Users/thisuser/.docker/machines/dev --name dev --register Virtual machine 'dev' is created and registered. UUID: d6ec89a6-98d1-40b7-85c5-79d109230e9a Settings file: '/Users/thisuser/.docker/machines/dev/dev/dev.vbox' DEBU[0017] executing: VBoxManage modifyvm dev --firmware bios --bioslogofadein off --bioslogofadeout off --natdnshostresolver1 on --bioslogodisplaytime 0 --biosbootmenu disabled --ostype Linux26_64 --cpus 2 --memory 1024 --acpi on --ioapic on --rtcuseutc on --cpuhotplug off --pae on --synthcpu off --hpet on --hwvirtex on --nestedpaging on --largepages on --vtxvpid on --accelerate3d off --boot1 dvd DEBU[0018] executing: VBoxManage modifyvm dev --nic1 nat --nictype1 virtio --cableconnected1 on DEBU[0018] executing: VBoxManage modifyvm dev --natpf1 ssh,tcp,127.0.0.1,49178,,22 DEBU[0018] executing: VBoxManage list hostonlyifs DEBU[0018] executing: VBoxManage modifyvm dev --nic2 hostonly --nictype2 virtio --hostonlyadapter2 vboxnet2 --cableconnected2 on DEBU[0018] executing: VBoxManage storagectl dev --name SATA --add sata --hostiocache on DEBU[0018] executing: VBoxManage storageattach dev --storagectl SATA --port 0 --device 0 --type dvddrive --medium /Users/thisuser/.docker/machines/dev/boot2docker.iso DEBU[0018] executing: VBoxManage storageattach dev --storagectl SATA --port 1 --device 0 --type hdd --medium /Users/thisuser/.docker/machines/dev/disk.vmdk DEBU[0018] executing: VBoxManage guestproperty set dev /VirtualBox/GuestAdd/SharedFolders/MountPrefix / DEBU[0018] executing: VBoxManage guestproperty set dev /VirtualBox/GuestAdd/SharedFolders/MountDir / DEBU[0018] executing: VBoxManage sharedfolder add dev --name Users --hostpath /Users --automount DEBU[0018] executing: VBoxManage setextradata dev VBoxInternal2/SharedFoldersEnableSymlinksCreate/Users 1 INFO[0018] Starting VirtualBox VM... DEBU[0018] executing: VBoxManage startvm dev --type headless Waiting for VM "dev" to power on... VM "dev" has been successfully started. INFO[0019] Waiting for VM to start... DEBU[0062] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost sudo hostname dev && echo "dev" | sudo tee /var/lib/boot2docker/etc/hostname dev DEBU[0066] executing: VBoxManage showvminfo dev --machinereadable DEBU[0066] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost ip addr show dev eth1 DEBU[0066] SSH returned: 4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:98:75:ca brd ff:ff:ff:ff:ff:ff inet 192.168.99.100/24 brd 192.168.99.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe98:75ca/64 scope link valid_lft forever preferred_lft forever

END SSH

DEBU[0066] generating server cert: /Users/thisuser/.docker/machines/dev/server.pem DEBU[0067] Stopping Docker... DEBU[0067] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost if [ -e /var/run/docker.pid ]; then sudo /etc/init.d/docker stop ; fi DEBU[0068] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost sudo mkdir -p /var/lib/boot2docker DEBU[0068] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost echo "-----BEGIN CERTIFICATE----- Mycert -----END CERTIFICATE----- " | sudo tee -a /var/lib/boot2docker/ca.pem -----BEGIN CERTIFICATE----- Mycert -----END CERTIFICATE-----

DEBU[0068] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost echo "-----BEGIN RSA PRIVATE KEY----- superkey== -----END RSA PRIVATE KEY----- " | sudo tee -a /var/lib/boot2docker/server-key.pem -----BEGIN RSA PRIVATE KEY----- superkey== -----END RSA PRIVATE KEY-----

DEBU[0068] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost echo "-----BEGIN CERTIFICATE----- boringcert -----END CERTIFICATE----- " | sudo tee -a /var/lib/boot2docker/server.pem -----BEGIN CERTIFICATE----- boringcert -----END CERTIFICATE-----

DEBU[0068] executing: VBoxManage showvminfo dev --machinereadable DEBU[0068] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost ip addr show dev eth1 DEBU[0068] SSH returned: 4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:98:75:ca brd ff:ff:ff:ff:ff:ff inet 192.168.99.100/24 brd 192.168.99.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe98:75ca/64 scope link valid_lft forever preferred_lft forever

END SSH

DEBU[0068] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost echo "EXTRA_ARGS='--tlsverify \ --tlscacert=/var/lib/boot2docker/ca.pem \ --tlskey=/var/lib/boot2docker/server-key.pem \ --tlscert=/var/lib/boot2docker/server.pem -H tcp://0.0.0.0:2376' CACERT=/var/lib/boot2docker/ca.pem SERVERCERT=/var/lib/boot2docker/server-key.pem SERVERKEY=/var/lib/boot2docker/server.pem DOCKER_TLS=no" | sudo tee -a /var/lib/boot2docker/profile EXTRA_ARGS='--tlsverify --tlscacert=/var/lib/boot2docker/ca.pem --tlskey=/var/lib/boot2docker/server-key.pem --tlscert=/var/lib/boot2docker/server.pem -H tcp://0.0.0.0:2376' CACERT=/var/lib/boot2docker/ca.pem SERVERCERT=/var/lib/boot2docker/server-key.pem SERVERKEY=/var/lib/boot2docker/server.pem DOCKER_TLS=no DEBU[0068] Starting Docker... DEBU[0068] executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 49178 -i /Users/thisuser/.docker/machines/dev/id_rsa docker@localhost sudo /etc/init.d/docker start INFO[0069] "dev" has been created and is now the active machine INFO[0069] Configure docker client with: $(dockermachine env dev)

ramschmaerchen commented 9 years ago

The non-working machine is not generating certs and keys upon creation.

Non-Working Machine

dockermachine -D create -d virtualbox dev2

INFO[0001] Creating SSH key... DEBU[0001] executing: /usr/bin/ssh-keygen ssh-keygen -t rsa -N -f /Users/thisuser/.docker/machines/dev2/id_rsa

Generating public/private rsa key pair. Your identification has been saved in /Users/thisuser/.docker/machines/dev2/id_rsa. Your public key has been saved in /Users/thisuser/.docker/machines/dev2/id_rsa.pub. The key fingerprint is: myfingerprint thisuser@localhost The key's randomart image is: +--[ RSA 2048]----+ | myfingerprint | +-----------------+ INFO[0001] Creating VirtualBox VM... DEBU[0001] Creating 20000 MB hard disk image... Converting from raw image file="stdin" to file="/Users/thisuser/.docker/machines/dev2/disk.vmdk"... Creating dynamic image with size 20971520000 bytes (20000MB)... DEBU[0020] executing: VBoxManage createvm --basefolder /Users/thisuser/.docker/machines/dev2 --name dev2 --register Virtual machine 'dev2' is created and registered. UUID: b743f20e-fcc9-4c26-8c63-fb5f4e8ef423 Settings file: '/Users/thisuser/.docker/machines/dev2/dev2/dev2.vbox' DEBU[0020] executing: VBoxManage modifyvm dev2 --firmware bios --bioslogofadein off --bioslogofadeout off --natdnshostresolver1 on --bioslogodisplaytime 0 --biosbootmenu disabled --ostype Linux26_64 --cpus 2 --memory 1024 --acpi on --ioapic on --rtcuseutc on --cpuhotplug off --pae on --synthcpu off --hpet on --hwvirtex on --nestedpaging on --largepages on --vtxvpid on --accelerate3d off --boot1 dvd DEBU[0020] executing: VBoxManage modifyvm dev2 --nic1 nat --nictype1 virtio --cableconnected1 on DEBU[0020] executing: VBoxManage modifyvm dev2 --natpf1 ssh,tcp,127.0.0.1,49175,,22 DEBU[0020] executing: VBoxManage list hostonlyifs DEBU[0020] executing: VBoxManage modifyvm dev2 --nic2 hostonly --nictype2 virtio --hostonlyadapter2 vboxnet2 --cableconnected2 on DEBU[0021] executing: VBoxManage storagectl dev2 --name SATA --add sata --hostiocache on DEBU[0021] executing: VBoxManage storageattach dev2 --storagectl SATA --port 0 --device 0 --type dvddrive --medium /Users/thisuser/.docker/machines/dev2/boot2docker.iso DEBU[0021] executing: VBoxManage storageattach dev2 --storagectl SATA --port 1 --device 0 --type hdd --medium /Users/thisuser/.docker/machines/dev2/disk.vmdk DEBU[0021] executing: VBoxManage guestproperty set dev2 /VirtualBox/GuestAdd/SharedFolders/MountPrefix / DEBU[0021] executing: VBoxManage guestproperty set dev2 /VirtualBox/GuestAdd/SharedFolders/MountDir / DEBU[0021] executing: VBoxManage sharedfolder add dev2 --name Users --hostpath /Users --automount DEBU[0021] executing: VBoxManage setextradata dev2 VBoxInternal2/SharedFoldersEnableSymlinksCreate/Users 1 INFO[0021] Starting VirtualBox VM... DEBU[0021] executing: VBoxManage startvm dev2 --type headless Waiting for VM "dev2" to power on... VM "dev2" has been successfully started.

ehazlett commented 9 years ago

Thanks. Could you also post the actual machine command line you are running?

ramschmaerchen commented 9 years ago

Sure, nothing fancy: dockermachine -D create -d virtualbox dev

Edited the comments above.

ehazlett commented 9 years ago

Ok. Is this from the RC2 or master? Also, can you try to remove (or backup) the existing ~/.docker/machines directory and try creation again?

I guess the obvious question is what is the difference between machines? OS version, arch, VirtualBox version, etc?

ramschmaerchen commented 9 years ago

Besides of the original entry, I always used master branch 4th Feb 2015.

Sorry for not mentioning: Removing .docker does not fix anything. I did not edit the original message as I was trying with RC2 then. With RC2, removing .docker worked. With master, everything is happening by chance. Sometimes it works, sometimes not. There is no way I am able to tell why it works.

Here is what I tried between creation of new machines:

I created 100 machines the last two days and was not able to figure out any pattern.

ehazlett commented 9 years ago

Ok so just to confirm, it is working some times? If that's the case, what is your Host OS (version) and VirtualBox version of the machine that isn't working?

ramschmaerchen commented 9 years ago

Yes, sometimes it is working, sometimes it is not, as mentioned in the comments. Specs are in the third comment. I added VirtualBox information. Quick access: VirtualBox 4.3.20 r96996

ramschmaerchen commented 9 years ago

After several tests I can confirm that RC2 is NOT working any better if .docker has been deleted before creating new machines.

nathanleclaire commented 9 years ago

I have, with a decent enough level of frequency to be considered worrisome, gotten that "Bad port '0'" error from VBox machines as well.

vdemeester commented 9 years ago

Same here, sometimes it works, most of the time not.

DEBU[0025] STDOUT: Waiting for VM "node1" to power on...
VM "node1" has been successfully started.

DEBU[0025] STDERR:                                      
INFO[0025] Waiting for VM to start...

For example, I made a script that create 5 docker-machine with the driver virtualbox (one is going to be a swarm-master, the other agents) for a demo. The creation of the first machine is ok, then it fails most of the time on the second one (hanging on Waiting for VM to start...).

Cleaning $HOME/.docker, $HOME/.config/VirtualBox, remove dhcpservers (VBoxManage dhcpserver remove --netname HostInterfaceNetworking-vboxnetX) and hostonly interfaces (vboxmanage hostonlyif remove vboxnet0) doesn't make it work better. No real idea why it's hanging though..

ehazlett commented 9 years ago

@vdemeester are you adding delays in the script? with VirtualBox, if you create the VMs too quickly, virtualbox will do that exact error. For example, in @nathanleclaire multiple instance PR, he doesn't launch them concurrently but rather queues them because of this behavior.

vdemeester commented 9 years ago

@ehazlett Yes I added a delay 5 to 10s and it's working a little better, few of nodes have created but in the end I got same error for one node.

What's strange is that docker-machine is waiting for the VM to start, but if I look at the VirtualBox machine (using the UI), I see that boot2docker is started.. It seems that for a reason I don't know, docker-machine do not detect that it's started in some cases. I'll try to take a look at the driver code (my golang knowledge is kinda small but :P), on how it's checking the availability of the VM.

nathanleclaire commented 9 years ago

@vdemeester Sorry to hear about the trouble. Could you please post the following information when you get a chance (it will help greatly in debugging):

Thanks!

ehazlett commented 9 years ago

@vdemeester that's the same behavior I've seen too. You can see the thumbnail of it running but never gets an IP. I think it would be beneficial to add a flag to not make the VM headless -- then we could at least login via the console to debug.

vdemeester commented 9 years ago

@nathanleclaire Yes :)

The Host is Archlinux, current update (as it's a rolling release, there no real way to point out a version). It makes me think I did not try my script on Ubuntu 14.04 for example, I'll keep you update when I do that (this week-end probably)

$ VBoxManage --version 
4.3.22_OSEr98236
$ pacman -Q | grep virtual # It's Archlinux
virtualbox 4.3.22-2
virtualbox-host-modules 4.3.22-1

The output is big (and I did not redirect it in a file so for now, it's just the end part — creation of node3 and node4) so I posted a gist I'll update : https://gist.github.com/vdemeester/452b7455ac85d904d0c0 . I also added the script I'm using to run it.

Last time I tried I wasn't on the same network (@work vs @home now..) and here it's failing on the node4, @work it was on the node3 each time. No idea why :).

I'll re-run the script from a clean environment with the output redirect to a file and will update the gist.

ghost commented 9 years ago

Hi, Just tried docker-machine and I'm encountering the same issue. Here's the details of the system that I'm running on.. (hope it helps).

I'm running this on Linux Mint, here are the details..

--8<-- snip ----------------------------------------------- johnzan@johnzan-lxc-wks ~ $ cat /etc/release DISTRIB_ID=LinuxMint DISTRIB_RELEASE=17 DISTRIB_CODENAME=qiana DISTRIB_DESCRIPTION="Linux Mint 17 Qiana" NAME="Ubuntu" VERSION="14.04, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 14.04 LTS" VERSION_ID="14.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" cat: /etc/upstream-release: Is a directory johnzan@johnzan-lxc-wks ~ $

--8<-- snip -----------------------------------------------

My Virtualbox version is 4.3.22 r98236

Other info: Virtualbox is running other VMs, and they are active when I run the 'docker-machine create --driver virtualbox dev' command.

Here's the output . . .

--8<-- snip -----------------------------------------------

johnzan@johnzan-lxc-wks ~ $ docker-machine create --driver virtualbox dev INFO[0000] Creating CA: /home/johnzan/.docker/machine/certs/ca.pem INFO[0000] Creating client certificate: /home/johnzan/.docker/machine/certs/cert.pem INFO[0003] Downloading boot2docker.iso to /home/johnzan/.docker/machine/cache/boot2docker.iso... INFO[0015] Creating SSH key...
INFO[0015] Creating VirtualBox VM...
INFO[0033] Starting VirtualBox VM...
INFO[0034] Waiting for VM to start...

^Cjohnzan@johnzan-lxc-wks ~ $ docker-machine ls Bad port '0' ERRO[0000] error getting URL for host dev: exit status 255 NAME ACTIVE DRIVER STATE URL SWARM dev virtualbox Running

--8<-- snip -----------------------------------------------

The binary is the 64bit Linux binary downloaded from the links provided in the documentation. Note that I created a symlink from ~/bin to the actual binary.

--8<-- snip -----------------------------------------------

johnzan@johnzan-lxc-wks ~ $ docker-machine -v docker-machine version 0.1.0

johnzan@johnzan-lxc-wks ~/bin $ ls -l total 15984 lrwxrwxrwx 1 johnzan johnzan 26 Mar 11 13:47 docker-machine -> docker-machine_linux-amd64 -rwxr-x--x 1 johnzan johnzan 16365408 Mar 11 13:46 docker-machine_linux-amd64 johnzan@johnzan-lxc-wks ~/bin $

--8<-- snip -----------------------------------------------

Hope that this info is of use.

Regards, J.

vdemeester commented 9 years ago

It might no be related (and hasn't been referencing this issue) but it may help debugging problems : https://github.com/docker/machine/pull/775

ehazlett commented 9 years ago

@johnzan could you try from master? there was a fix to address the SSHPort issue.

ghost commented 9 years ago

Hi, Yeah that seems to working fine now... any idea when it will make it into the binary on the downloads page.

Thanks. J.

ps: apologies for the delay in responding, was on a Paddy's Day break.

ehazlett commented 9 years ago

@johnzan we have a release coming soon (should be next week)

ehazlett commented 9 years ago

@ramschmaerchen could you try with the latest build from master to see if your issue still exists? thanks!

eric-leblouch commented 9 years ago

Same issue with 0.2.0 (8b9eaf2), only creating one instance on Mac OSX 10.9.5, Virtualbox 4.3.26

create command with debug following:

docker-machine -D create -d virtualbox hfactoryserver
DEBU[0000] executing: /usr/bin/VBoxManage               
DEBU[0000] STDOUT: Oracle VM VirtualBox Command Line Management Interface Version 4.3.26
(C) 2005-2015 Oracle Corporation
All rights reserved.

Usage:

  VBoxManage [<general option>] <command>

General Options:

  [-v|--version]            print version number and exit
  [-q|--nologo]             suppress the logo
  [--settingspw <pw>]       provide the settings password
  [--settingspwfile <file>] provide a file containing the settings password

Commands:

  list [--long|-l]          vms|runningvms|ostypes|hostdvds|hostfloppies|
                            intnets|bridgedifs|hostonlyifs|natnets|dhcpservers|
                            hostinfo|hostcpuids|hddbackends|hdds|dvds|floppies|
                            usbhost|usbfilters|systemproperties|extpacks|
                            groups|webcams

  showvminfo                <uuid|vmname> [--details]
                            [--machinereadable]
  showvminfo                <uuid|vmname> --log <idx>

  registervm                <filename>

  unregistervm              <uuid|vmname> [--delete]

  createvm                  --name <name>
                            [--groups <group>, ...]
                            [--ostype <ostype>]
                            [--register]
                            [--basefolder <path>]
                            [--uuid <uuid>]

  modifyvm                  <uuid|vmname>
                            [--name <name>]
                            [--groups <group>, ...]
                            [--description <desc>]
                            [--ostype <ostype>]
                            [--iconfile <filename>]
                            [--memory <memorysize in MB>]
                            [--pagefusion on|off]
                            [--vram <vramsize in MB>]
                            [--acpi on|off]
                            [--pciattach 03:04.0]
                            [--pciattach 03:04.0@02:01.0]
                            [--pcidetach 03:04.0]
                            [--ioapic on|off]
                            [--hpet on|off]
                            [--triplefaultreset on|off]
                            [--hwvirtex on|off]
                            [--nestedpaging on|off]
                            [--largepages on|off]
                            [--vtxvpid on|off]
                            [--vtxux on|off]
                            [--pae on|off]
                            [--longmode on|off]
                            [--synthcpu on|off]
                            [--cpuidset <leaf> <eax> <ebx> <ecx> <edx>]
                            [--cpuidremove <leaf>]
                            [--cpuidremoveall]
                            [--hardwareuuid <uuid>]
                            [--cpus <number>]
                            [--cpuhotplug on|off]
                            [--plugcpu <id>]
                            [--unplugcpu <id>]
                            [--cpuexecutioncap <1-100>]
                            [--rtcuseutc on|off]
                            [--graphicscontroller none|vboxvga|vmsvga]
                            [--monitorcount <number>]
                            [--accelerate3d on|off]
                            [--accelerate2dvideo on|off]
                            [--firmware bios|efi|efi32|efi64]
                            [--chipset ich9|piix3]
                            [--bioslogofadein on|off]
                            [--bioslogofadeout on|off]
                            [--bioslogodisplaytime <msec>]
                            [--bioslogoimagepath <imagepath>]
                            [--biosbootmenu disabled|menuonly|messageandmenu]
                            [--biossystemtimeoffset <msec>]
                            [--biospxedebug on|off]
                            [--boot<1-4> none|floppy|dvd|disk|net>]
                            [--nic<1-N> none|null|nat|bridged|intnet|hostonly|
                                        generic|natnetwork]
                            [--nictype<1-N> Am79C970A|Am79C973|
                                            82540EM|82543GC|82545EM|
                                            virtio]
                            [--cableconnected<1-N> on|off]
                            [--nictrace<1-N> on|off]
                            [--nictracefile<1-N> <filename>]
                            [--nicproperty<1-N> name=[value]]
                            [--nicspeed<1-N> <kbps>]
                            [--nicbootprio<1-N> <priority>]
                            [--nicpromisc<1-N> deny|allow-vms|allow-all]
                            [--nicbandwidthgroup<1-N> none|<name>]
                            [--bridgeadapter<1-N> none|<devicename>]
                            [--hostonlyadapter<1-N> none|<devicename>]
                            [--intnet<1-N> <network name>]
                            [--nat-network<1-N> <network name>]
                            [--nicgenericdrv<1-N> <driver>
                            [--natnet<1-N> <network>|default]
                            [--natsettings<1-N> [<mtu>],[<socksnd>],
                                                [<sockrcv>],[<tcpsnd>],
                                                [<tcprcv>]]
                            [--natpf<1-N> [<rulename>],tcp|udp,[<hostip>],
                                          <hostport>,[<guestip>],<guestport>]
                            [--natpf<1-N> delete <rulename>]
                            [--nattftpprefix<1-N> <prefix>]
                            [--nattftpfile<1-N> <file>]
                            [--nattftpserver<1-N> <ip>]
                            [--natbindip<1-N> <ip>
                            [--natdnspassdomain<1-N> on|off]
                            [--natdnsproxy<1-N> on|off]
                            [--natdnshostresolver<1-N> on|off]
                            [--nataliasmode<1-N> default|[log],[proxyonly],
                                                         [sameports]]
                            [--macaddress<1-N> auto|<mac>]
                            [--mouse ps2|usb|usbtablet|usbmultitouch]
                            [--keyboard ps2|usb
                            [--uart<1-N> off|<I/O base> <IRQ>]
                            [--uartmode<1-N> disconnected|
                                             server <pipe>|
                                             client <pipe>|
                                             file <file>|
                                             <devicename>]
                            [--guestmemoryballoon <balloonsize in MB>]
                            [--audio none|null|coreaudio]
                            [--audiocontroller ac97|hda|sb16]
                            [--clipboard disabled|hosttoguest|guesttohost|
                                         bidirectional]
                            [--draganddrop disabled|hosttoguest
                            [--vrde on|off]
                            [--vrdeextpack default|<name>
                            [--vrdeproperty <name=[value]>]
                            [--vrdeport <hostport>]
                            [--vrdeaddress <hostip>]
                            [--vrdeauthtype null|external|guest]
                            [--vrdeauthlibrary default|<name>
                            [--vrdemulticon on|off]
                            [--vrdereusecon on|off]
                            [--vrdevideochannel on|off]
                            [--vrdevideochannelquality <percent>]
                            [--usb on|off]
                            [--usbehci on|off]
                            [--snapshotfolder default|<path>]
                            [--teleporter on|off]
                            [--teleporterport <port>]
                            [--teleporteraddress <address|empty>
                            [--teleporterpassword <password>]
                            [--teleporterpasswordfile <file>|stdin]
                            [--tracing-enabled on|off]
                            [--tracing-config <config-string>]
                            [--tracing-allow-vm-access on|off]
                            [--usbcardreader on|off]
                            [--autostart-enabled on|off]
                            [--autostart-delay <seconds>]
                            [--vcpenabled on|off]
                            [--vcpscreens [<display>],...
                            [--vcpfile <filename>]
                            [--vcpwidth <width>]
                            [--vcpheight <height>]
                            [--vcprate <rate>]
                            [--vcpfps <fps>]
                            [--defaultfrontend default|<name>]

  clonevm                   <uuid|vmname>
                            [--snapshot <uuid>|<name>]
                            [--mode machine|machineandchildren|all]
                            [--options link|keepallmacs|keepnatmacs|
                                       keepdisknames]
                            [--name <name>]
                            [--groups <group>, ...]
                            [--basefolder <basefolder>]
                            [--uuid <uuid>]
                            [--register]

  import                    <ovfname/ovaname>
                            [--dry-run|-n]
                            [--options keepallmacs|keepnatmacs]
                            [more options]
                            (run with -n to have options displayed
                             for a particular OVF)

  export                    <machines> --output|-o <name>.<ovf/ova>
                            [--legacy09|--ovf09|--ovf10|--ovf20]
                            [--manifest]
                            [--iso]
                            [--options manifest|iso|nomacs|nomacsbutnat]
                            [--vsys <number of virtual system>]
                                    [--product <product name>]
                                    [--producturl <product url>]
                                    [--vendor <vendor name>]
                                    [--vendorurl <vendor url>]
                                    [--version <version info>]
                                    [--description <description info>]
                                    [--eula <license text>]
                                    [--eulafile <filename>]

  startvm                   <uuid|vmname>...
                            [--type gui|headless]

  controlvm                 <uuid|vmname>
                            pause|resume|reset|poweroff|savestate|
                            acpipowerbutton|acpisleepbutton|
                            keyboardputscancode <hex> [<hex> ...]|
                            setlinkstate<1-N> on|off |
                            nic<1-N> null|nat|bridged|intnet|hostonly|generic|
                                     natnetwork [<devicename>] |
                            nictrace<1-N> on|off |
                            nictracefile<1-N> <filename> |
                            nicproperty<1-N> name=[value] |
                            nicpromisc<1-N> deny|allow-vms|allow-all |
                            natpf<1-N> [<rulename>],tcp|udp,[<hostip>],
                                        <hostport>,[<guestip>],<guestport> |
                            natpf<1-N> delete <rulename> |
                            guestmemoryballoon <balloonsize in MB> |
                            usbattach <uuid>|<address> |
                            usbdetach <uuid>|<address> |
                            clipboard disabled|hosttoguest|guesttohost|
                                      bidirectional |
                            draganddrop disabled|hosttoguest |
                            vrde on|off |
                            vrdeport <port> |
                            vrdeproperty <name=[value]> |
                            vrdevideochannelquality <percent> |
                            setvideomodehint <xres> <yres> <bpp>
                                            [[<display>] [<enabled:yes|no> |
                                              [<xorigin> <yorigin>]]] |
                            screenshotpng <file> [display] |
                            vcpenabled on|off |
                            vcpscreens all|none|<screen>,[<screen>...] |
                            setcredentials <username>
                                           --passwordfile <file> | <password>
                                           <domain>
                                           [--allowlocallogon <yes|no>] |
                            teleport --host <name> --port <port>
                                     [--maxdowntime <msec>]
                                     [--passwordfile <file> |
                                      --password <password>] |
                            plugcpu <id> |
                            unplugcpu <id> |
                            cpuexecutioncap <1-100>
                            webcam <attach [path [settings]]> | <detach [path]> | <list>

  discardstate              <uuid|vmname>

  adoptstate                <uuid|vmname> <state_file>

  snapshot                  <uuid|vmname>
                            take <name> [--description <desc>] [--live] |
                            delete <uuid|snapname> |
                            restore <uuid|snapname> |
                            restorecurrent |
                            edit <uuid|snapname>|--current
                                 [--name <name>]
                                 [--description <desc>] |
                            list [--details|--machinereadable]
                            showvminfo <uuid|snapname>

  closemedium               disk|dvd|floppy <uuid|filename>
                            [--delete]

  storageattach             <uuid|vmname>
                            --storagectl <name>
                            [--port <number>]
                            [--device <number>]
                            [--type dvddrive|hdd|fdd]
                            [--medium none|emptydrive|additions|
                                      <uuid|filename>|host:<drive>|iscsi]
                            [--mtype normal|writethrough|immutable|shareable|
                                     readonly|multiattach]
                            [--comment <text>]
                            [--setuuid <uuid>]
                            [--setparentuuid <uuid>]
                            [--passthrough on|off]
                            [--tempeject on|off]
                            [--nonrotational on|off]
                            [--discard on|off]
                            [--bandwidthgroup <name>]
                            [--forceunmount]
                            [--server <name>|<ip>]
                            [--target <target>]
                            [--tport <port>]
                            [--lun <lun>]
                            [--encodedlun <lun>]
                            [--username <username>]
                            [--password <password>]
                            [--initiator <initiator>]
                            [--intnet]

  storagectl                <uuid|vmname>
                            --name <name>
                            [--add ide|sata|scsi|floppy|sas]
                            [--controller LSILogic|LSILogicSAS|BusLogic|
                                          IntelAHCI|PIIX3|PIIX4|ICH6|I82078]
                            [--portcount <1-30>]
                            [--hostiocache on|off]
                            [--bootable on|off]
                            [--remove]

  bandwidthctl              <uuid|vmname>
                            add <name> --type disk|network
                                --limit <megabytes per second>[k|m|g|K|M|G] |
                            set <name>
                                --limit <megabytes per second>[k|m|g|K|M|G] |
                            remove <name> |
                            list [--machinereadable]
                            (limit units: k=kilobit, m=megabit, g=gigabit,
                                          K=kilobyte, M=megabyte, G=gigabyte)

  showhdinfo                <uuid|filename>

  createhd                  --filename <filename>
                            [--size <megabytes>|--sizebyte <bytes>]
                            [--diffparent <uuid>|<filename>
                            [--format VDI|VMDK|VHD] (default: VDI)
                            [--variant Standard,Fixed,Split2G,Stream,ESX]

  modifyhd                  <uuid|filename>
                            [--type normal|writethrough|immutable|shareable|
                                    readonly|multiattach]
                            [--autoreset on|off]
                            [--property <name=[value]>]
                            [--compact]
                            [--resize <megabytes>|--resizebyte <bytes>]

  clonehd                   <uuid|inputfile> <uuid|outputfile>
                            [--format VDI|VMDK|VHD|RAW|<other>]
                            [--variant Standard,Fixed,Split2G,Stream,ESX]
                            [--existing]

  convertfromraw            <filename> <outputfile>
                            [--format VDI|VMDK|VHD]
                            [--variant Standard,Fixed,Split2G,Stream,ESX]
                            [--uuid <uuid>]
  convertfromraw            stdin <outputfile> <bytes>
                            [--format VDI|VMDK|VHD]
                            [--variant Standard,Fixed,Split2G,Stream,ESX]
                            [--uuid <uuid>]

  getextradata              global|<uuid|vmname>
                            <key>|enumerate

  setextradata              global|<uuid|vmname>
                            <key>
                            [<value>] (no value deletes key)

  setproperty               machinefolder default|<folder> |
                            hwvirtexclusive on|off |
                            vrdeauthlibrary default|<library> |
                            websrvauthlibrary default|null|<library> |
                            vrdeextpack null|<library> |
                            autostartdbpath null|<folder> |
                            loghistorycount <value>
                            defaultfrontend default|<name>

  usbfilter                 add <index,0-N>
                            --target <uuid|vmname>|global
                            --name <string>
                            --action ignore|hold (global filters only)
                            [--active yes|no] (yes)
                            [--vendorid <XXXX>] (null)
                            [--productid <XXXX>] (null)
                            [--revision <IIFF>] (null)
                            [--manufacturer <string>] (null)
                            [--product <string>] (null)
                            [--remote yes|no] (null, VM filters only)
                            [--serialnumber <string>] (null)
                            [--maskedinterfaces <XXXXXXXX>]

  usbfilter                 modify <index,0-N>
                            --target <uuid|vmname>|global
                            [--name <string>]
                            [--action ignore|hold] (global filters only)
                            [--active yes|no]
                            [--vendorid <XXXX>|""]
                            [--productid <XXXX>|""]
                            [--revision <IIFF>|""]
                            [--manufacturer <string>|""]
                            [--product <string>|""]
                            [--remote yes|no] (null, VM filters only)
                            [--serialnumber <string>|""]
                            [--maskedinterfaces <XXXXXXXX>]

  usbfilter                 remove <index,0-N>
                            --target <uuid|vmname>|global

  sharedfolder              add <uuid|vmname>
                            --name <name> --hostpath <hostpath>
                            [--transient] [--readonly] [--automount]

  sharedfolder              remove <uuid|vmname>
                            --name <name> [--transient]

  guestproperty             get <uuid|vmname>
                            <property> [--verbose]

  guestproperty             set <uuid|vmname>
                            <property> [<value> [--flags <flags>]]

  guestproperty             delete|unset <uuid|vmname>
                            <property>

  guestproperty             enumerate <uuid|vmname>
                            [--patterns <patterns>]

  guestproperty             wait <uuid|vmname> <patterns>
                            [--timeout <msec>] [--fail-on-timeout]

  guestcontrol              <uuid|vmname>

                              exec[ute]
                              --image <path to program> --username <name>
                              [--passwordfile <file> | --password <password>]
                              [--domain <domain>] [--verbose] [--timeout <msec>]
                              [--environment "<NAME>=<VALUE> [<NAME>=<VALUE>]"]
                              [--wait-exit] [--wait-stdout] [--wait-stderr]
                              [--dos2unix] [--unix2dos]
                              [-- [<argument1>] ... [<argumentN>]]

                              copyfrom
                              <guest source> <host dest> --username <name>
                              [--passwordfile <file> | --password <password>]
                              [--domain <domain>] [--verbose]
                              [--dryrun] [--follow] [--recursive]

                              copyto|cp
                              <host source> <guest dest> --username <name>
                              [--passwordfile <file> | --password <password>]
                              [--domain <domain>] [--verbose]
                              [--dryrun] [--follow] [--recursive]

                              createdir[ectory]|mkdir|md
                              <guest directory>... --username <name>
                              [--passwordfile <file> | --password <password>]
                              [--domain <domain>] [--verbose]
                              [--parents] [--mode <mode>]

                              removedir[ectory]|rmdir
                              <guest directory>... --username <name>
                              [--passwordfile <file> | --password <password>]
                              [--domain <domain>] [--verbose]
                              [--recursive|-R|-r]

                              removefile|rm
                              <guest file>... --username <name>
                              [--passwordfile <file> | --password <password>]
                              [--domain <domain>] [--verbose]

                              ren[ame]|mv
                              <source>... <dest> --username <name>
                              [--passwordfile <file> | --password <password>]
                              [--domain <domain>] [--verbose]

                              createtemp[orary]|mktemp
                              <template> --username <name>
                              [--passwordfile <file> | --password <password>]
                              [--directory] [--secure] [--tmpdir <directory>]
                              [--domain <domain>] [--mode <mode>] [--verbose]

                              list <all|sessions|processes|files> [--verbose]

                              process kill --session-id <ID>
                                           | --session-name <name or pattern>
                                           [--verbose]
                                           <PID> ... <PID n>

                              [p[s]]kill --session-id <ID>
                                         | --session-name <name or pattern>
                                         [--verbose]
                                         <PID> ... <PID n>

                              session close  --session-id <ID>
                                           | --session-name <name or pattern>
                                           | --all
                                           [--verbose]

                              stat
                              <file>... --username <name>
                              [--passwordfile <file> | --password <password>]
                              [--domain <domain>] [--verbose]

                              updateadditions
                              [--source <guest additions .ISO>] [--verbose]
                              [--wait-start]
                              [-- [<argument1>] ... [<argumentN>]]

                              watch [--verbose]

  debugvm                   <uuid|vmname>
                            dumpguestcore --filename <name> |
                            info <item> [args] |
                            injectnmi |
                            log [--release|--debug] <settings> ...|
                            logdest [--release|--debug] <settings> ...|
                            logflags [--release|--debug] <settings> ...|
                            osdetect |
                            osinfo |
                            getregisters [--cpu <id>] <reg>|all ... |
                            setregisters [--cpu <id>] <reg>=<value> ... |
                            show [--human-readable|--sh-export|--sh-eval|
                                  --cmd-set] 
                                <logdbg-settings|logrel-settings>
                                [[opt] what ...] |
                            statistics [--reset] [--pattern <pattern>]
                            [--descriptions]

  metrics                   list [*|host|<vmname> [<metric_list>]]
                                                 (comma-separated)

  metrics                   setup
                            [--period <seconds>] (default: 1)
                            [--samples <count>] (default: 1)
                            [--list]
                            [*|host|<vmname> [<metric_list>]]

  metrics                   query [*|host|<vmname> [<metric_list>]]

  metrics                   enable
                            [--list]
                            [*|host|<vmname> [<metric_list>]]

  metrics                   disable
                            [--list]
                            [*|host|<vmname> [<metric_list>]]

  metrics                   collect
                            [--period <seconds>] (default: 1)
                            [--samples <count>] (default: 1)
                            [--list]
                            [--detach]
                            [*|host|<vmname> [<metric_list>]]

  natnetwork                add --netname <name>
                            --network <network>
                            [--enable|--disable]
                            [--dhcp on|off]
                            [--port-forward-4 <rule>]
                            [--loopback-4 <rule>]
                            [--ipv6 on|off]
                            [--port-forward-6 <rule>]
                            [--loopback-6 <rule>]

  natnetwork                remove --netname <name>

  natnetwork                modify --netname <name>
                            [--network <network>]
                            [--enable|--disable]
                            [--dhcp on|off]
                            [--port-forward-4 <rule>]
                            [--loopback-4 <rule>]
                            [--ipv6 on|off]
                            [--port-forward-6 <rule>]
                            [--loopback-6 <rule>]

  natnetwork                start --netname <name>

  natnetwork                stop --netname <name>

  hostonlyif                ipconfig <name>
                            [--dhcp |
                            --ip<ipv4> [--netmask<ipv4> (def: 255.255.255.0)] |
                            --ipv6<ipv6> [--netmasklengthv6<length> (def: 64)]]
                            create |
                            remove <name>

  dhcpserver                add|modify --netname <network_name> |
                                       --ifname <hostonly_if_name>
                            [--ip <ip_address>
                            --netmask <network_mask>
                            --lowerip <lower_ip>
                            --upperip <upper_ip>]
                            [--enable | --disable]

  dhcpserver                remove --netname <network_name> |
                                   --ifname <hostonly_if_name>

  extpack                   install [--replace] <tarball> |
                            uninstall [--force] <name> |
                            cleanup

DEBU[0000] STDERR:                                      
INFO[0000] Creating SSH key...                          
DEBU[0000] executing: /usr/bin/ssh-keygen ssh-keygen -t rsa -N  -f /Users/elb/.docker/machine/machines/hfactoryserver/id_rsa

Generating public/private rsa key pair.
Your identification has been saved in /Users/elb/.docker/machine/machines/hfactoryserver/id_rsa.
Your public key has been saved in /Users/elb/.docker/machine/machines/hfactoryserver/id_rsa.pub.
The key fingerprint is:
4f:89:c5:4a:51:49:87:9f:b2:ad:33:27:0c:c8:f1:3f elb@macbook
The key's randomart image is:
+--[ RSA 2048]----+
|        .ooo.    |
|         oo.     |
|        . o. .   |
|      .. +..o    |
|     . +S o+     |
|      o oo. .    |
|         +..     |
|          E .    |
|           *     |
+-----------------+
INFO[0000] Creating VirtualBox VM...                    
DEBU[0000] Creating 20000 MB hard disk image...         
Converting from raw image file="stdin" to file="/Users/elb/.docker/machine/machines/hfactoryserver/disk.vmdk"...
Creating dynamic image with size 20971520000 bytes (20000MB)...
DEBU[0008] executing: /usr/bin/VBoxManage createvm --basefolder /Users/elb/.docker/machine/machines/hfactoryserver --name hfactoryserver --register 
DEBU[0008] STDOUT: Virtual machine 'hfactoryserver' is created and registered.
UUID: b7b4be6b-6eaf-40f2-b6f7-52bd377a05bd
Settings file: '/Users/elb/.docker/machine/machines/hfactoryserver/hfactoryserver/hfactoryserver.vbox'

DEBU[0008] STDERR:                                      
DEBU[0008] executing: /usr/bin/VBoxManage modifyvm hfactoryserver --firmware bios --bioslogofadein off --bioslogofadeout off --natdnshostresolver1 on --bioslogodisplaytime 0 --biosbootmenu disabled --ostype Linux26_64 --cpus 4 --memory 1024 --acpi on --ioapic on --rtcuseutc on --cpuhotplug off --pae on --synthcpu off --hpet on --hwvirtex on --nestedpaging on --largepages on --vtxvpid on --accelerate3d off --boot1 dvd 
DEBU[0008] STDOUT:                                      
DEBU[0008] STDERR:                                      
DEBU[0008] executing: /usr/bin/VBoxManage modifyvm hfactoryserver --nic1 nat --nictype1 virtio --cableconnected1 on 
DEBU[0008] STDOUT:                                      
DEBU[0008] STDERR:                                      
DEBU[0008] executing: /usr/bin/VBoxManage modifyvm hfactoryserver --natpf1 ssh,tcp,127.0.0.1,57240,,22 
DEBU[0009] STDOUT:                                      
DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage list hostonlyifs 
DEBU[0009] STDOUT: Name:            vboxnet0
GUID:            786f6276-656e-4074-8000-0a0027000000
DHCP:            Disabled
IPAddress:       192.168.59.3
NetworkMask:     255.255.255.0
IPV6Address:     
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:00
MediumType:      Ethernet
Status:          Down
VBoxNetworkName: HostInterfaceNetworking-vboxnet0

Name:            vboxnet1
GUID:            786f6276-656e-4174-8000-0a0027000001
DHCP:            Disabled
IPAddress:       192.168.99.1
NetworkMask:     255.255.255.0
IPV6Address:     
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:01
MediumType:      Ethernet
Status:          Up
VBoxNetworkName: HostInterfaceNetworking-vboxnet1

DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage modifyvm hfactoryserver --nic2 hostonly --nictype2 virtio --hostonlyadapter2 vboxnet1 --cableconnected2 on 
DEBU[0009] STDOUT:                                      
DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage storagectl hfactoryserver --name SATA --add sata --hostiocache on 
DEBU[0009] STDOUT:                                      
DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage storageattach hfactoryserver --storagectl SATA --port 0 --device 0 --type dvddrive --medium /Users/elb/.docker/machine/machines/hfactoryserver/boot2docker.iso 
DEBU[0009] STDOUT:                                      
DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage storageattach hfactoryserver --storagectl SATA --port 1 --device 0 --type hdd --medium /Users/elb/.docker/machine/machines/hfactoryserver/disk.vmdk 
DEBU[0009] STDOUT:                                      
DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage guestproperty set hfactoryserver /VirtualBox/GuestAdd/SharedFolders/MountPrefix / 
DEBU[0009] STDOUT:                                      
DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage guestproperty set hfactoryserver /VirtualBox/GuestAdd/SharedFolders/MountDir / 
DEBU[0009] STDOUT:                                      
DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage sharedfolder add hfactoryserver --name Users --hostpath /Users --automount 
DEBU[0009] STDOUT:                                      
DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage setextradata hfactoryserver VBoxInternal2/SharedFoldersEnableSymlinksCreate/Users 1 
DEBU[0009] STDOUT:                                      
DEBU[0009] STDERR:                                      
INFO[0009] Starting VirtualBox VM...                    
DEBU[0009] executing: /usr/bin/VBoxManage showvminfo hfactoryserver --machinereadable 
DEBU[0009] STDOUT: name="hfactoryserver"
groups="/"
ostype="Linux 2.6 / 3.x (64 bit)"
UUID="b7b4be6b-6eaf-40f2-b6f7-52bd377a05bd"
CfgFile="/Users/elb/.docker/machine/machines/hfactoryserver/hfactoryserver/hfactoryserver.vbox"
SnapFldr="/Users/elb/.docker/machine/machines/hfactoryserver/hfactoryserver/Snapshots"
LogFldr="/Users/elb/.docker/machine/machines/hfactoryserver/hfactoryserver/Logs"
hardwareuuid="b7b4be6b-6eaf-40f2-b6f7-52bd377a05bd"
memory=1024
pagefusion="off"
vram=8
cpuexecutioncap=100
hpet="on"
chipset="piix3"
firmware="BIOS"
cpus=4
pae="on"
longmode="on"
synthcpu="off"
bootmenu="disabled"
boot1="dvd"
boot2="dvd"
boot3="disk"
boot4="none"
acpi="on"
ioapic="on"
biossystemtimeoffset=0
rtcuseutc="on"
hwvirtex="on"
nestedpaging="on"
largepages="on"
vtxvpid="on"
vtxux="on"
VMState="poweroff"
VMStateChangeTime="2015-04-17T09:29:52.272000000"
monitorcount=1
accelerate3d="off"
accelerate2dvideo="off"
teleporterenabled="off"
teleporterport=0
teleporteraddress=""
teleporterpassword=""
tracing-enabled="off"
tracing-allow-vm-access="off"
tracing-config=""
autostart-enabled="off"
autostart-delay=0
defaultfrontend=""
storagecontrollername0="SATA"
storagecontrollertype0="IntelAhci"
storagecontrollerinstance0="0"
storagecontrollermaxportcount0="30"
storagecontrollerportcount0="30"
storagecontrollerbootable0="on"
"SATA-0-0"="/Users/elb/.docker/machine/machines/hfactoryserver/boot2docker.iso"
"SATA-ImageUUID-0-0"="abe00233-ae74-4123-a855-6b76b46ca822"
"SATA-tempeject"="off"
"SATA-IsEjected"="off"
"SATA-1-0"="/Users/elb/.docker/machine/machines/hfactoryserver/disk.vmdk"
"SATA-ImageUUID-1-0"="a15b84ba-519c-4e00-baf4-02a757d4a7a4"
"SATA-2-0"="none"
"SATA-3-0"="none"
"SATA-4-0"="none"
"SATA-5-0"="none"
"SATA-6-0"="none"
"SATA-7-0"="none"
"SATA-8-0"="none"
"SATA-9-0"="none"
"SATA-10-0"="none"
"SATA-11-0"="none"
"SATA-12-0"="none"
"SATA-13-0"="none"
"SATA-14-0"="none"
"SATA-15-0"="none"
"SATA-16-0"="none"
"SATA-17-0"="none"
"SATA-18-0"="none"
"SATA-19-0"="none"
"SATA-20-0"="none"
"SATA-21-0"="none"
"SATA-22-0"="none"
"SATA-23-0"="none"
"SATA-24-0"="none"
"SATA-25-0"="none"
"SATA-26-0"="none"
"SATA-27-0"="none"
"SATA-28-0"="none"
"SATA-29-0"="none"
natnet1="nat"
macaddress1="0800277C94F6"
cableconnected1="on"
nic1="nat"
nictype1="virtio"
nicspeed1="0"
mtu="0"
sockSnd="64"
sockRcv="64"
tcpWndSnd="64"
tcpWndRcv="64"
Forwarding(0)="ssh,tcp,127.0.0.1,57240,,22"
hostonlyadapter2="vboxnet1"
macaddress2="080027DE6D4A"
cableconnected2="on"
nic2="hostonly"
nictype2="virtio"
nicspeed2="0"
nic3="none"
nic4="none"
nic5="none"
nic6="none"
nic7="none"
nic8="none"
hidpointing="ps2mouse"
hidkeyboard="ps2kbd"
uart1="off"
uart2="off"
lpt1="off"
lpt2="off"
audio="none"
clipboard="disabled"
draganddrop="disabled"
vrde="off"
usb="off"
ehci="off"
SharedFolderNameMachineMapping1="Users"
SharedFolderPathMachineMapping1="/Users"
VRDEActiveConnection="off"
VRDEClients=0
vcpenabled="off"
vcpscreens=0
vcpfile="/Users/elb/.docker/machine/machines/hfactoryserver/hfactoryserver/hfactoryserver.webm"
vcpwidth=1024
vcpheight=768
vcprate=512
vcpfps=25
GuestMemoryBalloon=0

DEBU[0009] STDERR:                                      
DEBU[0009] executing: /usr/bin/VBoxManage startvm hfactoryserver --type headless 
DEBU[0010] STDOUT: Waiting for VM "hfactoryserver" to power on...
VM "hfactoryserver" has been successfully started.

DEBU[0010] STDERR:                                      
INFO[0010] Waiting for VM to start...                   
eric-leblouch commented 9 years ago

And it does not seem intermittent to me it is each time since using 0.2.0

johnkeenleyside commented 9 years ago

Same problem for me. Mac OS X 10.10.3 , docker-machine 0.2.0

[0] bin> docker-machine url dev2 Bad port '0' FATA[0000] exit status 255
[1] bin> docker-machine --version docker-machine version 0.2.0 (8b9eaf2)

eric-leblouch commented 9 years ago

Got it to work by trying and trying again with the debug option and I got to the WaitForSSH function and then all was ok.

On all the failes tries my last debug line was: INFO[0007] Waiting for VM to start...

DEBU[0007] STDERR:                                      
DEBU[0007] executing: /usr/bin/VBoxManage startvm hfactoryserver --type headless 
DEBU[0007] STDOUT: Waiting for VM "hfactoryserver" to power on...
VM "hfactoryserver" has been successfully started.

DEBU[0007] STDERR:                                      
INFO[0007] Waiting for VM to start...                   
DEBU[0038] Getting to WaitForSSH function...            
adamtwiss commented 9 years ago

Same problem here: docker-machine version 0.2.0 (8b9eaf2) MacOS 10.10.3 Create command just: docker-machine create -d virtualbox local Virtualbox 4.3.26 VM appears to have booted fine, but doesn't come up (stuck saying for waiting for VM)

docker-machine create -d virtualbox local
INFO[0000] Creating SSH key...                          
INFO[0000] Creating VirtualBox VM...                    
INFO[0008] Starting VirtualBox VM...                    
INFO[0008] Waiting for VM to start...                   

In another window:

docker-machine ls
Bad port '0'
ERRO[0000] error getting URL for host local: exit status 255 
NAME       ACTIVE   DRIVER         STATE     URL                       SWARM
droplet1            digitalocean   Running   tcp://46.101.11.15:2376   
local               virtualbox     Running      

Boot2docker runs fine on the same system ok.

johnkeenleyside commented 9 years ago

Like Eric, after several retries I was able to get it to work. Almost gave up....

ehazlett commented 9 years ago

For those interested, I've created #1024 to track the network side. Thanks for all of the feedback!

adamtwiss commented 9 years ago

Related to what @ehazlett said and #1024. I can confirm that when i delete all my other VirtualBox Host only networks (that fortunately I no longer needed) everything then works fine.

adamtwiss commented 9 years ago

Not quite so simple...... if I delete all my existing VirtualBox Host-only networks, I can create a new docker-machine fine. If I try and create a second docker-machine locally it then still fails ... presumably for exactly the same reasons.

ehazlett commented 9 years ago

@adamtwiss thanks for the feedback. i'll try the same on my end to see if i can re-create.

cjonagam commented 9 years ago

same problem for me! process halts at INFO[0009] Waiting for VM to start...

koalalorenzo commented 9 years ago

I have the same problem with Virtualbox on my Mac. I am using a VPN network (via tunnelblick) and I noticed that when I disconnect from my own network, the SSH connection to the machine disconnects too... but probably this is another problem. In both the cases when I am connected to the VPN and when I am not, docker-machine will stuck at "waiting for VM", and using 95% of my CPU.

ehazlett commented 9 years ago

@koalalorenzo thanks for the feedback. would you mind pasting VBoxManage list hostonlyifs and netstat -nr while connected to the VPN? My guess is it's messing with the routing table causing machine to hang while trying to connect.

koalalorenzo commented 9 years ago

@ehazlett I fixed the problem by deleting ~/.docker/ directory and running everything with kitematic. It is setting everything up correctly. After that docker-machine (v0.2.0) and all the other software are working properly.

VBoxManage returned: http://pastebin.com/32m4NajN netstat instead returned: http://pastebin.com/pwp9TzTq

zombie-guru commented 9 years ago

I'm having this issue too. I haven't tried it very rigorously (since it takes too long) but I think downgrading to boot2docker v1.5.0 fixes the issue.


docker-machine create --driver virtualbox \
    --virtualbox-boot2docker-url \
    https://github.com/boot2docker/boot2docker/releases/download/v1.5.0/boot2docker.iso \
    lildestroyer
gerad commented 9 years ago

fwiw downgrading boot2docker to 1.5.0 fixed the issue for me as well

ehazlett commented 9 years ago

It appears to be hostonlyif related. We've narrowed down a failing instance to the nic1 not receiving a DHCP lease causing an error. Can a few try removing all of their hostonlyifs to see if this works?

gerad commented 9 years ago

I tried removing all the hostonlyifs (via VBoxManage hostonlyif remove vboxnet0 etc) and that did not work for me… downgrading to boot2docker 1.5.0 did work (along with removing all of the hostonlyifs)

lukebrowell commented 9 years ago

What didn't work for me: Re-installing boot2docker Uninstalling boot2docker and installing kitematic Removing all my VMs Removing all my host interfaces Re-installing the latest version of vbox Turning off OSX Remote Login Sharing (sshd) *Rebooting

Then I came across this that was re-opened five days ago: https://www.virtualbox.org/ticket/3866 So I uninstalled vbox and installed the previous version VirtualBox 4.2.28, then reinstalled kitematic Still broken Kitematic locks at 99% (because it can't connect to the vm)

$ docker-machine ls Bad port '0' ERRO[0000] error getting URL for host dev: exit status 255 NAME ACTIVE DRIVER STATE URL SWARM dev virtualbox Running

Too many moving parts methinks.

nathanleclaire commented 9 years ago

Hi everyone, we are working hard to resolve this issue or issue(s) and we have it narrowed down to a specific section in the code but it is proving quite hard to reliably reproduce. If anyone on this thread is still encountering this issue, or happens to stumble across it while running into the issue, will you please post what the output of the following commands is on your system (it will help greatly with debugging):

$ VBoxManage list hostonlyifs
$ VBoxManage list dhcpservers

Thanks a bunch!

lukebrowell commented 9 years ago

$ VBoxManage list hostonlyifs: Name: vboxnet0 DHCP: Disabled IPAddress: 192.168.99.1 NetworkMask: 255.255.255.0 IPV6Address: IPV6NetworkMaskPrefixLength: 0 HardwareAddress: 0a:00:27:00:00:00 MediumType: Ethernet Status: Up VBoxNetworkName: HostInterfaceNetworking-vboxnet0

$ VBoxManage list dhcpservers: NetworkName: HostInterfaceNetworking-vboxnet0 IP: 192.168.99.2 NetworkMask: 255.255.255.0 lowerIPAddress: 192.168.99.100 upperIPAddress: 192.168.99.254 Enabled: Yes

screen shot 2015-05-17 at 19 43 09

zombie-guru commented 9 years ago

Still not working with boot2docker v1.6. It still does work if I downgrade to v1.5.

$ VBoxManage list hostonlyifs && VBoxManage list dhcpservers
Name:            vboxnet0
GUID:            786f6276-656e-4074-8000-0a0027000000
DHCP:            Disabled
IPAddress:       192.168.99.1
NetworkMask:     255.255.255.0
IPV6Address:     
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:00
MediumType:      Ethernet
Status:          Up
VBoxNetworkName: HostInterfaceNetworking-vboxnet0

NetworkName:    HostInterfaceNetworking-vboxnet0
IP:             192.168.99.2
NetworkMask:    255.255.255.0
lowerIPAddress: 192.168.99.100
upperIPAddress: 192.168.99.254
Enabled:        Yes
linkyndy commented 9 years ago

I'll also have my say in this. I've tried with both the latest boot2docker and 1.5.0. None of them worked when run as docker-compose create --driver virtualbox dev or docker-machine create --driver virtualbox --virtualbox-boot2docker-url https://github.com/boot2docker/boot2docker/releases/download/v1.5.0/boot2docker.iso dev.

However, with boot2docker 1.5.0 and the debug flag on (-D), the following command succeeded, but only after 2-3 attempts:

docker-machine -D create --driver virtualbox --virtualbox-boot2docker-url https://github.com/boot2docker/boot2docker/releases/download/v1.5.0/boot2docker.iso dev

It printed several debug messages trying to connect and then, I've encountered 2 cases:

EDIT:

I've tried removing ~/.docker and the above successful command succeeded from the first attempt. Still, it's weird that only boot2docker 1.5.0 works and even weirder that only with the debug flag on it succeeds...