The discussion revolves around the best practice for running Docker containers. demil initially suggests running one container for all dependencies of an app, but having multiple containers for separate apps. However, they’ve read that it’s better to separate containers for the database, app, etc.
sam explains that with a single container, everything needs to be shut down during updates, resulting in a few minutes of outage. When asked if a single container is a cleaner solution, sam responds that it’s a tradeoff and depends on the situation.
In contrast, codinghorror advises that multiple containers are only necessary for large sites requiring scalability, redundancy, and zero downtime. For most cases, they prefer having everything in a single container, as multiple containers add complexity.
It seems much more cleaner to me to run one docker container for all dependecies for some app, and to have multiple docker containers to sepparate apps, for example discourse container, wordpress container.
But on many places i have read that that was not good practise, and that is better to separate database container, app container etc.
In practical terms, main thing you lose out on with a single container is that you have to shut everything down while bootstrapping a new image, that means that if you need to update your container you are looking at a few minutes of outage
I personally think it is much simpler to have everything in a single container. Multiple containers is far more complex.
I would only advise multiple containers for large sites that really need multiple server scalability / redundancy and zero downtime Discourse updates once every month or so.