6 ms·
The main point he makes is valid however, > Porting your application to Docker increases complexity. Really. I think the main problem of Docker is that it's s
by kitsune_ 12y ago
The main point he makes is valid however,
> Porting your application to Docker increases complexity. Really.
I think the main problem of Docker is that it's sold as an 'easy solution' by many bloggers who only deal with it superficially and then move on to the next big thing. There are a lot of gotchas with docker containers and the creation of clean docker images that are not immediately clear when you start out. A lot of your standard Linux know-how is not applicable.
edit: Also, there are obvious security issues that are not immediately clear to most beginners, most certainly not from the tutorials.
One of my favorites: If you provision your database container with environment variables to create a dba user, and then link your db container to your app container, voilà, your app container will now most certainly have the dba login and password inside its environment variables: https://github.com/docker/docker/issues/5169 https://github.com/docker/docker/issues/5169
- kennu 12y agoI think sometimes people also confuse "easiness" and "managed complexity". Docker makes it easy to work on a single container/image at a time, so you don't have to simultaneously grasp the rest of a complex system. Complexity management is not a Docker-specific thing, but Docker makes it easier than before, and standardizes how it's done. I think that's the main added value.
- curun1r 12y agoThe reason people call it easy is because it makes a lot of things that are traditionally hard very, very easy. One need only have written Chef scripts for any considerable amount of time to appreciate just how much easier it is to write a Dockerfile. And the things that CoreOS/fleet, Kubernetes and (hopefully) EC2 Container Service do aren't just difficult to do without something like Docker, they're basically impossible. And as much as I like our DevOps teams, the fact that Docker has basically made meetings with them a thing of the past is a truly wonderful thing. That's why it's so frustrating to see developers making superficial forays into Docker and then declare it to be too complex. Yes, the simple and largely irrelevant stuff does get a bit more complex and you have to do some learning (and re-learning) before you use it for a production workload. But that's a trade off that a lot of us are willing to make to make the crazy-hard stuff significantly easier. We're developers. Our tools should not be optimized for first use.
- GrinningFool 12y ago"That's why it's so frustrating to see developers making superficial forays into Docker and then declare it to be too complex. " That goes both ways. It's equally frustrating to see developers making superficial forays into it and declaring it to be the magic bullet that makes everything simple. The basic fact is that building and deploying complex software, managing dependencies, handling discovery - these are all complex things. There is no solution that makes it simple because it is inherently not a simple process. Instead, we can only shuffle the complexity to places we're more comfortable in managing. For some use cases that's a dockerfile. For others, it's chef cookbooks [or other CM solution]. For yet others, it's both.