| Yes. It is like configuration management [e.g. Chef, Salt]. It doesn't make sense to do for one off projects [unless you already have it as part of your workflow]. Like, I have a generic Flask container repository that I clone as a starting base...change the domain name(s) on the config file, app name, etc. Then just copy things into the src/ directory and spin it up. For me, this is really easy to spin up a new flask project. I do the same with golang [sort of, it really just downloads a binary+config file into a container that has all of my logging, etc setup]. The problem with doing LXC is where you have inheritance chains like this: [Base Container of Ubuntu + Logging + Monitoring] -> [Base Flask Container] -> [Flask Container for Website X] [Base Container of Ubuntu + Logging + Monitoring] -> [Base Flask Container] -> [Flask Container for API for Website X] [Base Container of Ubuntu + Logging + Monitoring] -> [Container for Mail Service] [Base Container of Ubuntu + Logging + Monitoring] -> [Container for Kibana] [Base Container of Ubuntu + Logging + Monitoring] -> [Container for Redis-Cache] etc. Tbh, I think that is what docker really fixes. The ability to easily inherit containers so you only have to make changes in one spot to change all of them. |