Hacker News new | ask | show | jobs
by breerly 3516 days ago
I said goodbye to VirtualBox the day Docker's Mac/xhyve story rolled out.

It was a beautiful day.

6 comments

I've since gone back to VirtualBox because of the absolutely awful performance of Docker for Mac.
If they would fix this one issue[1], or make it super-easy to use an alternative to osxfs, I would have switched to Docker already.

[1] https://github.com/docker/for-mac/issues/77

How can one run Microsoft IE VMs in Docker? Genuine question, since I have to do Internet Explorer debugging.
To add some technical explanation to what larrybud said: Docker containers aren't full VMs. They don't virtualize the computer hardware or the OS kernel. So when you run a bunch of Docker containers on a computer, all of those containers are still using the same underlying OS kernel. Docker really only natively runs on Linux (and BSD), and all Docker containers are running in Linux, so running a Windows VM inside a Docker container would really only be possible if you also ran something like VirtualBox inside the Docker container (and I can't really imagine that working or being a good idea).

In short: VirtualBox is still probably the best option for running those IE VMs, and for cases like this Docker is not really a replacement for or competitor with solutions like VirtualBox.

Yes and no: that isn't how SQL Server on Docker works... Try it for yourself:

    $ docker run -d -p 1433:1433 --env sa_password=abc123 microsoft/mssql-server-2016-express-windows
That requires you to be running Windows Server 2016: https://github.com/Microsoft/sql-server-samples/tree/master/...

Essentially, they have a docker-API-compatible HTTP server that runs a different set of container images. Similar to how SmartOS has a docker-API-compatible HTTP server (running on top of, essentially, a Linux emulation layer).

Well yes, that was my point. No sign of VirtualBox running Windows inside Docker there...
I had completely forgotten they added Windows Container support when running the daemon on a Windows host! Thanks for the correction.
Microsoft gave a big pile of cash to Docker to figure out how to make Windows based Docker images.

I haven't been following it closely so I don't know what's become of it since then, but if you want IE you're going to need that work.

For other browsers, the Selenium team maintains docker images containing all of the drivers and XVFB code to make them run. They even have a debug image with xvnc on it so you can spy on the browser if something is going wrong.

> Microsoft gave a big pile of cash to Docker to figure out how to make Windows based Docker images.

Actually Microsoft has been contributing quite a bit to the OCI (Open Container Initiative), as well as Docker. So they have been putting in the work. I'm not really partial to Microsoft, but they do have some good engineers that are working on free software.

Not docker, but you can run IE VMs under vmware/virtualbox/hyperv by going to http://modern.ie and downloading time-limited IE images
Check out modern.ie, it should meet your needs
Sorry, should have provided more details. MS make virtual box images available here https://developer.microsoft.com/en-us/microsoft-edge/tools/v... They come with an IE install on Windows and are perfect for testing.
My big issue with Docker on Mac is that, if I understand it correctly, I have to provision the max amount of RAM my containers will need and have that sitting, consumed, when Docker is enabled (the Linux VM is running).

At least with traditional VMs for development I can spin up a few low memory VMs (256MB, for example), using just as much RAM as needed. My understanding is that running one low memory Docker container will cause the VM to consume 4GB (or whatever my default is). On a MacBook, where RAM is at a premium, this doesn't work for me.

I imagine the native experience on Linux is much nicer.

I totally forgot the docker mac integration. How is it treating you? How is the performance?

I stopped using mac a while ago to avoid performance overhead. Now i'm curious how the new Docker Mac would treat me

Is there a way to get docker to do all the virtual networks Virtualbox can? I'd love to chuck vbox too, but I use it to sandbox a VPN connection.
Theoretically, any network setup a virtual machine manager can do, so should a container engine. The bulk of the work setting up the network happens on the host side anyway, and Linux guests can be made to see whatever network interfaces the host/engine wants it to see.

systemd's containerization solution supports quite a few ways to construct network setups. Look for 'network' in `man systemd-nspawn`.

I can't say much about Docker's support though. Haven't used it since 0.6, and I didn't have a favourable opinion of their network management ideas back then either.

Does docker support passing through USB devices? That's the one thing that ties me to vbox more than anything else.