Docker isn't virtualization. It's a way of packaging applications, their dependencies and configuration. Docker containers can be run together or segregated based on configuration. Essential in much modern software- no more this dependency for x clashes with that dependency for y / 'works on my machine' / I can't install that version.
The containers share a host Linux kernel (which is virtualized on non Linux systems). Docker runs fine on ARM but only using arm containers. It's tricky to run x86_64 containers on an arm host, especially with a different OS