The differences are big. You running code locally on mac os, but production runs on Linux. Different versions of libraries, toolchains, etc. The only way to avoid this thing - run in same environment. Even if you use a Vagrant you still running in totally different environments. Only containers can provide possibility to run the same environment locally and in production.
If you have very simple app, then maybe they are the same.
When you introduce external services, async cloud functions, environment variables, feature flags, dependencies, missing mocks... then its not the same, and the whole containerization loses its shine and starts to cost more than its worth.
Ideal world would be... ideal, but its not. And docker is not necessary for every dev, by any stretch of an imagination.
Also, if docker is necessary for quality software - are you saying that before docker was invented, there was no quality software?
It was much harder to achieve same level of quality.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.