you can do it with or without docker, thats your choice.

With docker you have to use different config.js files, they can be placed in the same folder and must be mapped into the right container.

You could use only one modules folder for all instances by installing all modules there.

Updating the core is done by using a new docker image (same for all instances).

The one-modules-folder may also could be established with the classic setup, you could use symlinks from a central place into the modules folder of the several instances (never tested this!).