I think from what I’ve read that this is the case, but I’ve read some other info that’s made it less clear to me.
On the second part of the question regarding container engines, I’m pretty sure that may also be correct, and it kinda makes me wonder a little about risks of engine lock-in, but that may be a little out of scope.
A Linux container can only run on a Linux kernel (and likewise for Windows and Mac). But there are plenty of tools to more-or-less transparently solve that particular problem by e.g. running a virtual machine in the background to host a shared Linux installation that hosts the containers (and then mapping ports and stuff for you).