Live data from Hacker News

Docker Considered Harmful (2016)

catern.com

111–120 of 188 posts

Re: Docker Considered Harmful (2016)

#111

Like any hyped up technology, Docker gets pitched as an "easy, works out of the box, secure by default solution" but it is almost anything but. But also like any technology, if you take the time to really understand what it is doing and what problems it can solve for you, it can be really awesome to work with. Every "Docker Considered Harmful" post I've read basically boils down to "Why would you use Docker if you ca…

> 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…

> implementations for OS X and Windows

But they use virutal machines. For me, the disk access speed is very slow for a virtual machine. For example, elasticsearch daemon starts in 8s in Debian on real hardware and takes more than 30s in a VirtualBox. Everything that touches disk works slower.

Re: Docker Considered Harmful (2016)

#112

if you work by yourself feel free to use whatever arcane shell scripting you desire, but for the love of humanity, if you are going to expose other people to your code, please use a standardized tool like docker.

the result is arcane shellscripting in the docker image...

Re: Docker Considered Harmful (2016)

#113

Silly question, but I have heard that around a fifth of the websites that you see on the internet use 'Wordpress'. 'Wordpress' is a simple blogging platform that has a really nice editor that people like working with. There are many add-ons for 'Wordpress' that enable people to customise what it does and what it looks like. These can complicate matters, however, at the end of the day, 'Wordpress' is just a neat blogg…

Sure, you can do that - https://themeisle.com/blog/local-wordpress-development-using...

You can also install something like WAMP on Windows and develop locally http://www.wampserver.com

As for the benefit... you can switch i.e. PHP version by simply editing the docker-compose.yml file - this is everything but simple on most Linux distributions.

Re: Docker Considered Harmful (2016)

#115
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 think he's trying to describe the complexity of it, so a fairer way to characterize it might be some scripts in Python or Ruby.

But then once you added enough features that that became unmanageable, you'd write it in a proper systems language like Go, and oh, right, now you're writing Docker.

Re: Docker Considered Harmful (2016)

#116
post #4

> I think you could reimplement [some random part of what Docker does] easily yourself with a small shell script and some calls to mount; but I haven't bothered. Exactly.

This time around, everyone keeps excerpting this sentence. I guess what people are making of this sentence is, "but I haven't bothered [to reimplement this functionality, even though it would be useful, since then I'd have to maintain it, and I haven't yet needed it]". If that's what the sentence meant, then that would certainly be a good argument that Docker is useful: it provides the missing pieces that no-one else has bothered to implement yet.

Unfortunately that's not what I meant when I wrote the sentence, and I think a more accurate reading is transparently obvious if you actually quote the sentence with context. The very next sentence describes my preferred way to get this functionality that Docker provides. The real reading of the sentence is "but I haven't bothered [to reimplement this functionality, because it would be useless to do so when there are perfectly good existing ways to get this functionality]".

Quoting people out of context is a great way to get punchy soundbites, but not a good way to reach mutual understanding.

I'll excerpt the entire section below:

> Now, it's true that Docker uses layering to be efficient in terms of disk space and time to build new containers. It defaults to using AUFS to do this.7 I think you could reimplement it easily yourself with a small shell script and some calls to mount; but I haven't bothered.

> Personally, I just use man 8 btrfs-subvolume. btrfs is a copy on write filesystem which can instantly make space-efficient copies of filesystem trees in "subvolumes", which the user sees as just regular directories.

> You can build a stock Ubuntu filesystem tree into a subvolume with btrfs subvolume create /srv/trees/ubuntu && debootstrap trusty /srv/trees/ubuntu/. Then, when you want to build a new container with specific software, you just copy that subvolume and perform your modifications on the copy; that is, btrfs subvolume snapshot /srv/trees/debian /srv/containers/webapp and work on /srv/containers/webapp. If you want to copy those modifications, you just take another snapshot.

> This is arguably better, because there's no need to maintain a lot of state about the mount layerings and set them up again on reboot. Your container filesystem just sits there in a volume waiting for you to start it.

> Naturally, if you don't like btrfs for some reason, you're perfectly able to use zfs, OverlayFS, AUFS, or whatever; no need to have a "storage driver" implemented just to do some simple copy-on-write or layering operations.

Re: Docker Considered Harmful (2016)

#117

This post totally misses the forest for some trees. Docker isn't a success because it is some amazing revolutionary technology that doesn't exist in another form. Docker is a success and beloved by many because it provides a UX that doesn't require learning about a lot of this stuff upfront so you can get a lot of the immediate benefit without knowing a ton.

Especially, the ton you don't need to know is the endless configuration headaches associated with running a VM, communicating with the VM, mucking about with the filesystem, etc. I've been computering for 20 years, I've seen my share of OS's, but if I want to use a new one, it's back to square one as I'm poking around for manpages and other bullshit. I don't feel smarter after learning yet another deranged mind's conventions.

Re: Docker Considered Harmful (2016)

#118
post #20

The reasons for using Docker are social, not technological.

What do you mean? Are you referring to the Docker Hub in particular?

Partly yes. The other is a tool almost everyone knows, like git. Even if it isn't the best one, there is value in everyone knowing it.

Re: Docker Considered Harmful (2016)

#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 sysadmin needs to administer many systems, so they don't want to have anything being installed in special places, that's just adding more complexity.

A build system has to account for the fact that devs are tinkering with the code, experimenting, etc. and need to periodically wipe it all away and run it with a clean slate.

Re: Docker Considered Harmful (2016)

#120

This article is ignoring the benefits of standardization. Let's compare it to some other "unnecessary" thing, actual containers: You can put stuff on ships without them, but turns out that once you start using them, just the fact that everything is standardized gives you insane benefits. Of course you could reimplement each part of Docker differently. Of course it's not magic. Nothing is magic about a metal box, and…

That's a nice metaphor, but it's still not at all certain that Docker is the standard solution. We've had Linux for 20 years and we still don't have a single standard package manager; Docker's been around for 5 years and it's already been abstracted over by systems like Kubernetes, making Docker itself less and less relevant.

What is certain is that systems like Debian and Fedora are not going away. Your Docker images couldn't be built without them, after all. And the other tools mentioned in the article, too, are not going anywhere. So why don't you just standardize on the real underlying platform?

Post reply on HN