Live data from Hacker News

Basically Everyone Should Be Avoiding Docker

lukesmith.xyz

51–60 of 103 posts

Re: Basically Everyone Should Be Avoiding Docker

#52
Among the other wrong/dumb things in the post, equivocating all containers with "Docker" reveals a lot of ignorance. You can have your nice existing stuff, and still use containers (and reap the benefits) if you just use LXC. You get the advantages of not needing to pollute a host with everything (including potentially incompatible dependencies), incorporating cgroups and namespaces and ease of migration (really easy to bring LXC containers to a new host), while not having to buy wholesale into all of the parts of Docker you don't want.

This is (basically) burger king, you can have it your way, you just have to actually learn some new shit once in a while and not just refuse to ever pick up or learn anything new.

Re: Basically Everyone Should Be Avoiding Docker

#53
I love docker. It's indispensable. But it's bitterly hilarious that we are in a place where that's true. I hope in 20 years we have figured out the problems docker solves without another "wrap the whole thing in an abstraction layer" solution. But I had hoped we'd be there by 2010.

Re: Basically Everyone Should Be Avoiding Docker

#54
post #38

Containerization is amazingly great for scientific computing. I don’t ever want to go back to doing the make && make install dance and praying I’ve got my dependency ducks in a row.

Containerization is great. Docker != containerization. Most people don't even know it runs qemu under the hood.

Re: Basically Everyone Should Be Avoiding Docker

#55
> Well, if you’re expecting Docker to have a file-system easily accessible, you’re wrong—in fact, that’s “the point.” I can’t use typical commands like updatedb/locate/find to find what I need. I have to run a command with a massive prefix specific to that container. I don’t have tab completion when running Docker container commands, so when I inevitably mistype while searching for the file or attempting to delete it, I have to re-edit a multi-line command.

Am I missing something? Isn't this as easy as:

docker exec -it --user /bin/bash

I used this just yesterday to get shell access to a Docker container. From there I have full access to the filesystem.

Re: Basically Everyone Should Be Avoiding Docker

#56

Earlier quoted context omitted.

When I encounter a README/INSTALL that advises Docker, I start to suspect that the package is a mess. I'm sure there are legitimate usages within enterprise-y scenarios, but it has commonly become a way to paper over other issues.

This is definitely true. You see it constantly in deep learning applications, where eg NVIDIA’s fancy fp8 stuff needs C++11 ABI, so they need to compile torch from source, which means everything with C++ dependencies on torch needs to be recompiled, and eventually it’s much easier to ship a container image. It can be done with an Ansible playbook, sure, if you don’t have to ever do anything else with your machine.

Isn't it also true that not every library needs to be deployed system-wide?

I find that many of these poorly maintained build systems have very little to do with native code. Often it is a node.js server + frontend or in the case of AI, python. Some of this seems related to the current norms in those ecosystems.

Re: Basically Everyone Should Be Avoiding Docker

#57

I like docker because it makes it super easy to try out apps that I don’t necessarily know that I want and I can just delete it. I’m also confused about the claim that there is no config file… everyone I know uses docker compose, that’s really the only right way to use docker, using a single docker command is for testing or something, if you’re actually using the app long term, use docker compose. Also most apps I us…

The title should be the opposite imo. Why everyone should use docker

After reading this, I assumed this was some level of parody:

“If a program can be easily installed on Debian and (nowadays) installed on Arch Linux, that covers basically all Linux users.”

Re: Basically Everyone Should Be Avoiding Docker

#58

Why would you edit or delete files inside a running container? It’s ephemeral and supposed to be used stateless. You can attach volumes from host system if you need persistence.

At least one use case I've seen for Docker is to replicate the massively microservice oriented system. If your app is deployed across 200 different containers in prod, you're going to be testing it by spinning up the same basic containers with Docker in dev. That means a lot of incremental changes-- trivial stuff like adding transient logging or bypassing default flows-- inside the container as part of the development process.

Then you get into politics: you might need change XYZ for your feature, but you don't own that common image and have to rely on someone else to deploy it, so until then it's manual patches.

Re: Basically Everyone Should Be Avoiding Docker

#59
The author clearly doesn't know how to use Docker and blames their issues on the tool and even on the concept of containerization !

Regarding a file system, in most docker containers you should be able to run "docker exec -ti sh" and you have a shell inside the container, where you *have autocomplete*,and can *run linux commands like locate*.

Regarding configuration files, that's an application issue, 99% of applications I run with docker use configuration files, because that just how you manage software. So either your BTCPay thing doesn't have a configuration file, and it would be the same than if you didn't use Docker, or it has one and you didn't know you could mount it inside the container.

And regarding the "fake" reasons :

> It’s no easier to setup a Docker file than a installation shell script, even one that runs on multiple platforms.

Um, no ? Because between "knowing the environment my code runs in" and "not knowing the environment my code runs in" of course the first option is better and easier to reason about.

> Containers can only be “easier to manage” when they strip away all of the user’s ability to manage in the normal unix-way, and that is relatively unmissed.

By unix way what do you mean ? The container is a process, you can manage the process the unix way.

The focus is in the process' environment, which is better if the end user *doesn't* have to manage it.

> Containerization makes software an opaque box where you are ultimately at the mercy of what graphical settings menus have been programed into the software. It is the nature of containers that bugs can never been fixed by users, only the official development team.

I think you just don't know how to use Docker to edit the files of your application, but it's really as easy as just editing files on linux because *the container is really just using a linux filesystem*

> People who do not know how to use Unix-based operating systems or specifically GNU/Linux.

Did you miss the fact that you need to know how to use linux to write a working Dockerfile ? Because it still runs linux !

Re: Basically Everyone Should Be Avoiding Docker

#60
How about "this has too many dependencies which are tricky to set up and I think they might change under me and I won't be able to run the project anymore"?

I've created a (working) docker image and even if the stuff in the dockerfile breaks, I still have the image and can run the damn thing.

Post reply on HN