This was actually my original approach. I meant to mention that. And I got it to work but then I had to figure out how to control the hardware from the pi and I just gave up. To be fair, I didn't try too hard. I'm sure there is a way to communicate with peripherals through
Another option would be to make a minimal install and then just clone the SD card. It's less neat than Docker, but if you're provisioning a new Pi then you still need to install Docker on it in the first place. Or use something like Ansible to do the setup automatically?
Hardware control on the Pi is pretty simple, use the WiringPi library. I guess you'd need to run Docker in privileged mode, but it should work from within a container?
Did you look at Resin OS at all (resin.io)? No affiliation. Ship a container to your Pi that you can develop on your laptop and then have built for the ARM architecture on Resin's server. It looked very good last fall when I was toying around with Pi video but never pursued it.