In short, Docker's development was payed for by a company for commercial purposes. Moreover, it was build as an abstraction over kernel features so that developers won't need learn anything about them. It's success is product of the fact that tools can create extremely useful abstractions and when they do people benefit from using them and depends on them.