On my Raspberry Pi 3 I'm running Hypriot OS which installs a minimal host OS and then just runs Docker.
Thanks to cloud-init (Old version though) you can even pre-configure the boot image with your SSH key etc. which allows you to automate your initial install.
Ubuntu for the RPi also uses cloud-init. I use it create a default user with my username instead of the ubuntu user, deploy ssh keys, install packages and configure the network on newly deployed Pi's.
Docker on ARM is not a smooth experience. Hardly anyone builds containers for ARM so you end up either building everything yourself or finding weird -arm versions of popular containers.
Thanks to cloud-init (Old version though) you can even pre-configure the boot image with your SSH key etc. which allows you to automate your initial install.
https://blog.hypriot.com/downloads/
https://cloudinit.readthedocs.io/en/0.7.9/topics/capabilitie...