Live data from Hacker News

Docker Considered Harmful (2016)

catern.com

121–130 of 188 posts

Re: Docker Considered Harmful (2016)

#121
post #75
post #52

Earlier quoted context omitted.

I am absolutely sure there are usecases for that. But the truth is, most websites will happily run on a single dedicated machine you rent for a few hundred dollars. (OK, two, so you have a hot spare, if you so fancy.) This fact often gets overlooked despite even Stackexchange tweeted once or twice they could run their site with a single DB server. But: cloud! Kubernetes! Hype. Meh.

Stack exchange has spent an obscene amount of time optimizing their infrastructure for efficiency on dedicated known hardware. Their DB instances also have 1.5TB of ram. You're not getting that for a few hundred dollars. https://stackexchange.com/performance Your average site wouldn't get anywhere near the same performance as them.

I think GP was pointing out the inefficiencies rife in "cloud scale" architecture these days, not saying that anyone can scale to StackExchange levels on a single instance.

Re: Docker Considered Harmful (2016)

#122
post #2

I'm not at all convinced that reams and reams of shell scripts to deploy complex applications is a good idea. But by all means go for it if you think that is the way to go.

I have the same problem. Docker as a means of making deployable, system-imaged tarballs super-easily? Great! And they'll run almost anywhere given the aggressive portability emphasis of Docker-the-product? Even better! Networking, volume mounts, and quotas included? Holy shit, this is awesome!

...now tell me about how all this stuff gets configured.

...shell scripts, you say? &&-spliced because lots of infrastructure is affected by a layer limit? And everything's committed so you can't hook parent containers' "$package_manager upgrade" phases? So everyone is running bunches of time-consuming (or superstitious/witchcraft) commands multiple times throughput the build hierarchy cautionarily if you don't control every layer? What the fuck?!

Seriously. Docker is a great product, period. But their community totally dropped the ball on provisioning. Being able to bail back out to shell commands is an important ability, but that being the default for conventional, complex deploys is batshit insane. That's what Puppet/Chef/Ansible/Packer/pick-your-favorite-provisioning-tool were designed to solve.

These aren't specialized, high-learning-curve "old-school sysadmin-club members only" technologies. They're easy, accessible, and save you from short (quicker initial provisioning/predictability), medium (updates to low-level parts of your infrastructure), and long-term (tracking security-related dependencies) headaches. Even if people don't use one of these tools for its portability benefits (because they're on Docker, so fuck portability . . . until it manifests as a random-container-linux compatibility issue), I'm baffled as to why they don't pick them up for the benefits in maintainability. Anyone who has had to deploy more than a handful of low-level package updates in a complex containerized deploy has to have asked "isn't there a better way?!" at least twice.

Re: Docker Considered Harmful (2016)

#123
post #79

I don't know if it was true when the article was written, but at least today some of what the author writes in http://catern.com/posts/docker.html#sec-4 is untrue. https://docs.docker.com/engine/security/security/#linux-kern...

From your link:

>One primary risk with running Docker containers is that the default set of capabilities and mounts given to a container may provide incomplete isolation, either independently, or when used in combination with kernel vulnerabilities.

Re: Docker Considered Harmful (2016)

#124

Earlier quoted context omitted.

> Every "Docker Considered Harmful" post I've read basically boils down to "Why would you use Docker if you can use the 10 technologies it wraps around and manage them yourself instead?" Why would I want to do that if I don't have to? Or if you can't? One feature driving Docker adoption that I think a lot of people miss is that it's got fairly workable (if warty in one case and obnoxious in the other) implementations…

> Sure, your ops team can put together a bunch of stuff manually. And then you can create a bunch of extra stuff that makes it easier for development to handle all of that inside virtual machines, and get the network bridging between those apps and the host machine working properly, and all that fun stuff. I think this is one of the biggest reasons people use Docker, although they tend to forget to mention it since i…

In default docker installation on most Linux boxes, communication to docker socket itself requires elevated privilege. You can't even do `docker ps`.

In jobs I held - people who can pull images and run container on servers, they also could install stuff if they wanted. Is running privileged containers blocked? It just seems something broke down in engineering process, if developers has to bypass admins to install stuff on a server. What happens if that server crashed and burned?

Re: Docker Considered Harmful (2016)

#125
post #119

I think that Docker became popular because of very limited functionality of distributions' package managers that doesn't match developers' expectations. Traditionally in Linux there is no concept of "system" and "applications". There is only one large "system" and you can add parts to it. In old times, you downloaded C source code, make'd and installed it. Now you use a package manager to extend your system with new…

> ... because of very limited functionality of distributions' package managers that doesn't match developers' expectations. In particular, package managers don't match the expectations of build systems, because package managers are written by and for ops guys. A sysadmin working on system serving a production load rarely wants to reboot the system, let alone blow it all away and rebuild from scratch. Moreover, the sy…

So basically we need one more distribution, this time targeted at developers?

Re: Docker Considered Harmful (2016)

#127
post #15

So i should learn every possible combination of init system to convert some random launch scripts from the internet to run in my particular setup? Instead of `docker run postgres`? Or how i should do the same in K8s? Invent some packaging format? Wait a second.. aren't all linux packaging formats are overly complicated and are really hard to maintain comparing to docker images? What if some package work only on some…

I've tried and failed a couple times to make Debian packages. The system is so old and crufty, writing a dockerfile is an order of magnitude simpler and there are lots of useful examples and tutorials that were written more recently than 20 years ago.

> I've tried and failed a couple times to make Debian packages.

That's a real problem. Distributions have really dropped the ball here (to varying degrees).

But there's a big difference between "Docker is $distribution_package_manager done right!" and "Docker at least sucks less than the alternatives".

The tradeoff when packaging via Docker is often in integration with other facilities provided by the OS. Some of the hassles of packaging for a native OS package manager are senseless, bad UX to be sure. But others are there for a reason: how to integrate with init systems, standard directory locations, shared cache locations, or (god forbid) desktop/windowing systems? If your answer to those is "fuck it, use Docker", you often end up with a user experience akin to driving a portable mobile home down a small city street: technically fits and obeys traffic patterns, but doesn't behave in a way that anyone who has lived there for awhile expects it to.

Re: Docker Considered Harmful (2016)

#128
post #119

Earlier quoted context omitted.

> ... because of very limited functionality of distributions' package managers that doesn't match developers' expectations. In particular, package managers don't match the expectations of build systems, because package managers are written by and for ops guys. A sysadmin working on system serving a production load rarely wants to reboot the system, let alone blow it all away and rebuild from scratch. Moreover, the sy…

So basically we need one more distribution, this time targeted at developers?

Brother/Sister, I have come down from the mountain, and behold, I bring news of a glorious new future, and it is called Gentoo!

Salvation shall be had, in the weeks/years/decades after the first successful kernel compilation is achieved.

Re: Docker Considered Harmful (2016)

#130
post #50
post #11

Earlier quoted context omitted.

Docker has reached the point that it is complicated. A lot of people never did cgroups just because it is lower, starting to touch kernel stuff. Few people want to go there. Docker is one of those things that you can install and run; it takes a small amount of time to get running. As you said, value in simplifying things. That being said... Anyone who takes the stance that containers are better than X/Y/Z are just sh…

I use Docker daily, and I almost never find it complicated. I use it for build servers and my companies infrastructure. The alternative would be a nightmare to me.

> The alternative

the fact that the singular is used in response to a thread concerning considering options and diving deep is telling.

Post reply on HN