I once built a dev box in which everything was dockerized including GUI apps and my windows manager (xwindows socket binding baby) it was an awful idea
I scratch that itch with something much less extreme. Just some vagrant shit with an ansible provisioner, and all the important non-secrets and config checked in to a git repo. Why docker? Why the window manager/GUI stuff? host machine solves that problem already.