I finally got access to the Docker For Mac beta. My initial impressions are extremely positive. With Docker packaged so well for end users that leverages native OS X virtualization technology, a new era of local Docker development is here.
The application packaging fits in perfectly with OS X. It is a DMG with a single “Docker” app that you drag into the Applications folder.
When you run it, it first asks for root permission to install some things. This is nothing new as we’re all used to Docker needing deep system hooks to get its job done.
After that it starts little helper in the OS X System bar as well as some crazy cool and complicated xhyve stuff on the system.
xhyve is extremely cool technology which wraps the native OS X Hypervisor Framework for a virtualization backend. No longer do we need a heavy weight VirtualBox, VMWare Fusion or Parallels Desktop installed and running as a “side car” to run Linux programs on a Mac.
I’ve been following community efforts about running Docker under xhyve for a while now, but there’s nothing like Docker Inc. packaging it up. There are some really hard problems around virtual machines, filesystems and networking that Docker has fixed and will support going forward.
This is a game changer for local development tools.
The final bit is a new `docker` client, version 1.11.0, which has more smarts about how to find and interact with this Docker server. No more strange environment variables to discover and set in your ~/.bash_profile.
It works the same, but not needing to manage a `docker-machine` or delegate to VirtualBox feels light years better. The alpine-based redis image downloads and starts in less than 5 seconds! Click here to see an animation.
Most exciting is what I get to uninstall. I’ve been doing development 100% in Docker environments for close to a year so I’ve accumulated a ton of cruft.
- VirtualBox and its nasty kernel extensions
- The install2docker scripts I wrote to non-interactively uninstall and re-install VirtualBox when it inevitably got messed up
- 11 GB of VirtualBox VM data
- VMWare Fusion and its price tag
- Docker Machine (via homebrew)
- 36 GB of machine data in ~/.docker/
- boot2docker (via homebrew)
- boot2docker (stand alone app)
- Docker Toolbox (Docker Machine, Docker Quickstart Terminal and Kitematic)
- Hacks in /etc/hosts
- Environment variables in ~/.bash_profile
Docker For Mac is a game changer. I’ve been able to cope with the previous tools but the experience has been rough to say the least.
Based on the design and execution that this beta demonstrates I am confident that better days are here.
When ever Mac laptop has a lightweight and reliable Linux container runtime that truly just works development and deployment will be forever changed.
We’ve all seen this vision for a while now so it is awesome to see it more fully realized.
Please send feedback and/or questions via Medium or Twitter to @nzoschke or email to email@example.com.