On the topic of ZFS and Docker, you may want to keep an eye on the development of LXD’s ZFS block mode support which would allow using a container (or custom filesystem volume) as a ZFS block volume, with its own filesystem ontop (such as ext4).
This would retain most of the benefits of ZFS (snapshots, migration etc) whilst avoiding the issues that Docker has with running overlay2 ontop of ZFS (as the actual Docker volume’s filesystem would be ext4 onto of a ZFS block volume).