The presence or not of docker is kind of irrelevant for almost all plugin and theme component development. This is a separate concern. I don’t run a docker instance in dev.
When developing addons for Discourse you shouldn’t need to obsess over the exact version or configuration of your dev instance versus production because you normally have no control over most of the instances your plugin will end up on in any case if it is open source. The most important thing is to follow good practice to make your add-on more robust to changes within Discourse core. Even if you are only developing for your own discourse instance you still have no control over discourse core changes so same approach applies.
Slightly different versions should NOT generally cause your plugin or theme component to fail. It can but it’s not consistent. My plug-ins and TCs can go months without needing changes so work on core commits months apart
I normally update my dev instance to latest master when working on plugin changes (fixes or enhancements) so I can sweep up any breaking changes. This is simply achieved by a git pull, bundle install and db:migrate.
Production instances should just be updated via the front end or the command line rebuild.
My advice would be to get a plugin out there in public and attract users and learn the bumps of the road with experience. Don’t procrastinate too much: do! And don’t worry about making mistakes because they help you learn.