Ask HN: Docker, VM, whatever for documenting on MacOS/Windows?

2 points by tomcam ↗ HN
I am writing some tutorials on things like GitHub and using Golang with Google Cloud SQL. I want to make sure I can start from scratch fairly often because I want to recreate the new user experience: Creating SSH keys, installing MySQL from scratch, etc. It's awfully easy to assume a user experience that the novice cannot recreate easily. I am doing multiple tests to keep those problems to a minimum.

My host systems are MacOS and Windows. Ideally I could do the docs for Ubunutu (is that the most common denominator?) or Fedora. Most of the tutorials are on the command line, not the GUI.

What's the best way to create reproducible environments that I can tear down and reset to zero quickly? I am thinking that Docker would be a good way to go, but maybe Windows support isn't there yet? Or does Windows 10 have some kind of hypervisor that would let me blow away subshell or something?

I think the best way to do this probably Docker, but I don't know how to make the Windows shell a docker image.

Or maybe Virtual Box is the way to go? I have the luxury of a brand new Windows 10 laptop, if that makes a difference.

4 comments

[ 0.76 ms ] story [ 9.2 ms ] thread
Have you explored Vagrant?

https://www.vagrantup.com/

I've used VirtualBox plus Vagrant while experimenting with how to set up web servers, DBs and the like.

But it sounds like his readers are assumed to be starting from scratch and doing things manually. If so, then while developing the docs I might choose to just use VirtualBox by itself, and snapshot just after installation, and just after each significant addition. It's pretty easy to start over at a snapshot, and it's one less moving part without Vagrant.

I did not think of Vagrant. Parent's analysis and suggestions regarding VirtualBox are exactly on target. Thank you for answering the question so ably.
Docker support is great on Windows! I'd definitely advise you to use Docker with Docker Compose. Docker Compose makes Docker function like Vagrant.

A novice can easily install Docker for Mac/Windows, it includes Docker Compose and even has a GUI that will guide users in setting up a hyperviser.