First a bit of background:
I currently use VMWare ESXi for my virtual machines. Some servers needs to be up 24/7 and others I tear down and re-create from templates when I need to.
After playing around with docker I see I can accomplish much of the above and also much faster (at least for my Linux machines).
But what I like about VMware ESXi is a good graphical overview of the global resources for the host, all running/stopped servers, their hardware resources and the ability with a few clicks to add more RAM, CPU or disk space to individual servers.
Regarding tweaking memory/CPU seems you can do the same in docker:
https://docs.docker.com/engine/admin/resource_constraints/#configure-the-realtime-scheduler
just a bit more low-level.
So at the moment I don't really see a path where I could completely move from a VMWare/ESXi managed infrastructure to a pure docker infrastructure and based on:
https://www.upguard.com/articles/docker-vs.-vmware-how-do-they-stack-up
it sounds like this is not really the point with docker either - to replace existing hypervisors like VMWare/Hyper-V etc.
Then the question:
Or are the companies that run a pure docker setup for their whole machine farm and if so how do they manage resources and keep an overview of all servers?
A "pure" docker setup adds another layer of abstraction. Docker hosts will be VMs running on a hypervisor or in a cloud. To run docker containers you need a Linux host which needs to run somewhere. The resources of the docker hosts will than need somekind of docker cluster manager like
kubernetes
orswarm
.So in short: there is no path to completely replace a hypervisor setup with a pure docker solution.