Docker Native (i.e. the Docker Beta)
I got admitted into the beta program for the “native” Docker for Windows and Mac. Basically, no longer relying on VirtualBox, but instead uses a platform-specific virtualization solution; Hyper-V for Windows and xhyve for Mac. When I got the email notification, I jumped on board straight away — while I have no problems with the current Docker Toolbox setup, a more tightly-integrated setup would be great.
I downloaded the Windows version, since I use Windows 10 on my main workstation at home (with a Mint VM for node.js bits). I fire up the installer, and I am greeted with a dialog that I’ll need to install the Hyper-V suite (part of Windows, just not enabled by default), and reboot. Sure, why not — that’s the native virtualization system for Windows, after all. I reboot, and everything is up and running; I can `docker ps` and `docker run` and all is well.
Or so I thought — with Docker running, I decided to get back to a node.js project that I’ve been fiddling around with. Fire up VirtualBox, fire up the VM, and… Nothing. Oh, yeah — turns out you cannot have Hyper-V and VirtualBox running at the same time. Well, let’s bite the bullet, convert my VM to Hyper-V and kick it up. Sounds easy, right? Surely there is a wizard somewhere to get this done?! Nope. Okay, do some command line fiddling with VirtualBox to convert the virtual disk to the format that Hyper-V understands, convert it again from VHD to VHDX using a PowerShell cmdlet.
After all of that insanity, it turns out that I had created the Hyper-V VM in “version 2” format, which means that it needs all sorts of crazy GPT/GUID stuff to boot, which my VirtualBox VM didn’t come with. Okay, let’s simply fire up a the VM, install Ubuntu 16.04, then copy my applications and home folder across — that can’t be too hard, right? And for once, it wasn’t.
That said, the story does continue, because it turns out that the Hyper-V linux integration is actually nowhere near as awesome as the one in VirtualBox. That, or I somehow couldn’t get it up and running, which is entirely possible. After wasting probably two or three hours changing kernels, installing random packages, and still not being able to copy and paste between my VM and my desktop, I gave up. Perhaps when I have a day to spare (hah!), I’ll try again, but for now, I’m back to VirtualBox and the Docker Toolbox.