Thanks for the report, and congratulations on figuring out what was going on! I can see why the behaviour is as described on a very shallow level: xenial postrm masks both the service and socket units but the bionic postinst just unmasks the socket. Deeper than that, I really don't know. The way the service file is installed is different on xenial, it's installed via the .install file and maybe that makes dh_systemd do something different. Perhaps the pragmatic fix is to just explicitly insert "deb-systemd-helper unmask docker.service >/dev/null || true" into the postinst in bionic+?
Thanks for the report, and congratulations on figuring out what was going on! I can see why the behaviour is as described on a very shallow level: xenial postrm masks both the service and socket units but the bionic postinst just unmasks the socket. Deeper than that, I really don't know. The way the service file is installed is different on xenial, it's installed via the .install file and maybe that makes dh_systemd do something different. Perhaps the pragmatic fix is to just explicitly insert "deb-systemd-helper unmask docker.service >/dev/null || true" into the postinst in bionic+?