back

by jasonpeacock·7y ago·view on hn ↗
> was likely due to a script that had got out of hand starting up too many containers.

So there wasn't any actual problem with Docker, it was the OP's own problem that they "solved" by switching container platforms instead of just fixing their own buggy script?

5 comments
I facepalmed when I read that...

This is an all too common problem in development and it's made me very skeptical of coworkers at times who use it "X technology doesn't work or X is garbage" as a justification to switch technologies or spend time prototyping several alternatives.

I'm not gonna say Docker is a perfect tool by any stretch either.

Very true.

I know a lot of people in school who have to use a generally well regarded technology, but hate it because they had to use it in a class. For example, they might see someone on github and go “oh is that github? I hate using git” when in reality they had to use it in a group project with 4 other people who have never used it, and had no understanding of branches, merging, etc.

I have seen the same thing with LaTeX, Python, and Vim.

This same pattern also hurt Scheme's reputation. For a while, when I mentioned I was doing big production work in Scheme, it was ordinary for someone to mention hating it from school.

(ProTip: Maybe you hated it from school because it was used as a tool for teaching theory and beginner stuff, and you were given difficult homework assignments. Maybe you'd like it more if you learned how to use it practically, while you were working on things you actually wanted to do.)

>git...LaTeX, Python, and Vim

To be fair, LaTeX, git, and Vim, beyond shallow use, have fairly steep learning curves and can initially seem like a huge inconvenient mess before one learns, through trial and error, enough of the basics to really unlock enough utility to justify their use.

In a perfect world we'd all first sit down with manuals/tutorials, absorb everything from the getgo, and hack away with bliss; but most people, myself included, do not have enough intrinsic interest to muster the will to sit through documentation while paying enough attention to absorb a bunch of seemingly irrelevant details about some involved tech tool, when we have one simple goal to accomplish now, so instead we piece everything together with a combination of Google searches and keyboard mashing until things work and then optimize on top of that later.

In my experience this can be one of the factors that define a so called 10x dev - the willingness and ability to plod through docs with a genuine interest before using a powerful tool. I imagine such crowd is overrepresented on HN but quite rare in the general population.

Really hard to use tools and half obsolete by some metrics.

Vi predates keyboards with arrow keys and numpad. You can do most of what vim can do in any editor if you can use your keyboard effectively. Then there is the question of VI vs VIM. Some schools force students to use VI, which is really a different and antiquated beast.

LaTeX lost a lot of relevance since Office 2010, that added a great equations editor and better handling of sections/subsections.

You totally can't do "most of what vim can do in any editor if you can use your keyboard effectively". For example: fXctX - find next X on current line, change to next X. You can, fortunately, get a pretty decent vim emulation in various IDEs.

TeX still renders equations better than Office does. Also it's programmable.

I totally agree with you. Those are _hard_ tools, and if on top of it you have the attitude of "I am just going to learn this for this class because the teacher told me too", you are definitely going to dislike it.

I think you are spot on with the intrinsic interest.

I think it's valid, if I'm understanding the context.

OP seems to run a lot of infrastructure on his "home servers" not because he directly needs it but as a learning/playground environment.

So here he's chosen to learn about some new tools rather than track-down and fix a misbehaving script. That seems reasonable to me.

(Though, I'm inferring here. If that's really was his thinking was, he could have stated it clearly and prevented the confusion.)

> I facepalmed when I read that...

I encourage you to read the entire article, so you understand what was his actual thought process deciding to replace docker, and the pros of the new solution.

It was on his home servers and he got a valid point regarding redundant daemon in docker. So I don't understand why you facepalm because its not your business what he runs at home or how he rocks his boat.
I'm facepalming because he literally went through all the effort to replace Docker without fixing the underlying problem which is his script.

At a minimum it means he doesn't understand how his own code works which is going to be problematic if your career involves coding.

The "it's none of your business" argument falls flat the moment you decide to broadcast to the entire world what you're doing and then get it onto a the front page of a website known for debating the content of said articles.

You should read articles without assuming Hacker News is the intended audience. They usually aren't submitted by the author.
> I'm facepalming because he literally went through all the effort to replace Docker without fixing the underlying problem which is his script.

Well, he didn't say that the reoccurring problem came back, so maybe it was Docker after all?

Either way, I agree somewhat #facepalm

No, some container went rogue, and in the process dragged the Docker daemon which annoyed him PLUS he'd learnt that it was possible to run containers rootless and daemonless SO he changed his setup. Please RTFA.
Not the default hence not well tested. AND you still have a Docker daemon running. Furthermore, last time I checked, Docker does not support user namespacing in a released version yet.

I maintain the "duh fix your script dummy" is not the right attitude. The author clearly states it's used for a build farm. That is bound to fail ...

I read "Docker daemon was using 100% CPU" to be the recurring incident; not a given script. And when that happens, it ends up cascading and stuff get OOM-killed before you know it.

Last I checked it isn't out yet and Podman offers this already.
You missed the point. RedHat has replaced the docker command with their own tool that does the same thing. He's just trying the new tools and it's poorly framed as a deliberate migration. It's not a migration and there is no effort involved. Docker is simply gone, the tools he mention are the new de facto standard and he will have to live with them anyway.
It seems that "abandoning Docker" is the latest fashion fad, this is not the first article of this kind on HN recently.

I look at each of those articles carefully and my takeaway every time is the same: there are great alternatives to Docker if you have unlimited time and are willing to accept lots of limitations.

Sure. Gotta use that time for HN comments.

I agree with the actual comments on Dockers design.

But I’m in infra and security so I’m biased.

It’s my job as a tech nerd to care about that stuff? Or maybe I’m leaning into the role too much.

Why even bother working in tech when this march forward is what everyone complains about but has been here forever?

Growing up means getting over this shit internally.

>Anyway, I didn’t necessarily blame Docker for it, but it did add force to an argument I’d heard before:

Why does Docker need a daemon at all?

I am similarly confused as to why docker needs a daemon. For what's provided in the API, I don't see the need...it could all happen in the client.

Contrast with LXD. It has a daemon as well, but it tracks containers and state across multiple hosts, so the need is obvious. The single host LXC doesn't have a daemon.

Well for one, it can restart the container when it fails or on boot up. I don’t see how having no process minder improves anything, you could argue systemd shouldn’t be a daemon too and sysv init scripts are better too.
> you could argue systemd shouldn’t be a daemon too and sysv init scripts are better too.

You certainly could.

And you'd be wrong... The init system will always be a daemon, for obvious reasons ;-)
You're begging the question that systemd should be the init system
I'm not. The original questions were:

> systemd shouldn’t be a daemon too

A. False.

> and sysv init scripts are better too

B. Debatable, but the start is a false premise, SysV init was a daemon plus the scripts.

Systemd not being a daemon doesn't make any sense; both it and SysV are init systems which are by necessity daemonized processes.
Well technically PID 1 is not a daemonized process because there is no one who could have daemonized it.
That’s the point. The same principle applies to Docker. Although conceivably the daemon could be just about process/container management instead of image management as well.
Well, the argument that Red Hat makes is that there already is systemd as a daemon for process management; all other functionality that docker provides does not necessitate a daemon. Thus Podman, Buildah etc.
Auto-restart isn't even default behavior though. I'd argue for "start a daemon when needed behavior."
In such cases I tell people that computers do what they are told. Especially when your code does something you didn’t expect.
Hm, I remember reading other unrelated reasons the author mentions for switching away. Maybe the article was edited after you read it.

Is this gonna be another systemctl situation?

“It’s new! Hiss!!!!”