At a super rough gloss:
Pure Marxism encompasses two basic theories: Marx’s critique of capitalist economics, which he argues are predicated on unjust material distributions which are employed by the owning class to steal value from the working class by controlling the means of production; and his proposed alternative, wherein the workers own the means of production and exist in a stateless, classless worker’s paradise (“communism”).
Notably lacking in Marx’s work is a compelling plan for how to move from capitalism to communism. Enter Leninism: to transition, the so-called “vanguard party” will seize control and establish a total dictatorship to wholly quash capitalism and bring the society into alignment towards communism; when this is achieved, the vanguard party is supposed to relinquish control and the worker’s utopia may commence.
This school of thought, deemed Marxism-Leninism, is the nominal philosophy underpinning many modern states that bill themselves as communist, including the USSR and the CCP. While on paper it provides a feasible path to the worker’s utopia, critics argue that in practice the vanguard party fails to relinquish control, establish themselves as the new owning class, and operate a fundamentally capitalist regime under the trappings of communism.
In my experience, very, but it’s also not magic. Being able to package an application with its environment and ship it to any machine that can run Docker is great but it doesn’t solve the fact that modern deployment architecture can become extremely complicated, and Docker adds another component that needs configuration and debugging to an already complicated stack.