Docker really isn't a level 1 hypervisor. Instead, it's a platform for running Linux containers.
Running Linux in a Docker container is a VERY different experience than running something like a VMWare or Hyper-V VM with a full blown OS in it. The good news is that Docker containers are much less resource intensive than a full OS in terms of memory and disk usage, but the downside to that they really aren't designed to be permanent. Instead of deploying software updates and patches to a VM, you're basically building the entire container (OS/middleware/code) from scratch using a Dockerfile when you do updates. Because of this, stuff like databases usually store data in mounted storage outside of the container.
While it's more of a pain to set up a containerized infrastructure, it's awesome once it's configured. Once you have a working Dockerfile and some network/storage configuration .yaml files, it only takes minimal changes to make containers that work for development, testing, and production. Businesses love this stuff, since you can guarantee that all of your environments are built in the same way every time. The patching process is mostly eliminated as well... just spin up a new container with the latest OS or middleware version in it.
The nice thing is that this isn't an either/or decision, either. You can spin up an ESXi server, create some larger Linux VM's on it, and then try running your Docker containers on those. Hate it? Nuke the Docker VM's and make dedicated Linux VM's in its place. I've worked with places that built an entire development Kubernetes (think deployment automation for Docker) cluster using an single ESXi box.