44 comments

[ 2.6 ms ] story [ 52.3 ms ] thread
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 use do have a specific place you can set for configuration in the docker compose file.

This has rather strong “old man yelling at clouds” vibes.

OP: Learn docker and it stops being an “impenetrable wall.” Face it, you don’t want to use docker (or podman) because you are set in your ways. That’s fine, but it is not an argument for anyone else.

"Everyone else needs to learn and use Linux so I don't have to learn Docker"
> It’s no easier to setup a Docker file than a installation shell script, even one that runs on multiple platforms.

I would be very curious to see this done in a robust way. Bash vs PowerShell. All the various installation managers on those OS systems. Permissions as the programs will be going on the OS itself.

When I tried this, granted is a very junior developer, I did not succeed.

Should this be titled "Basically everyone who doesn't know how to use Docker should be avoiding Docker"?
This should have been titled "basically everyone should be avoiding containers". I thought this was an article about the company Docker
Very poor article. Doesn't even acknowledge the main reason people use containers, which is to reliably setup, manage, and replicate an environment regardless of the machine it’s running on.

And this guy runs a bitcoin payment service? Is this the technical level of the people writing critical payment code in the bitcoin ecosystem? Yikes

I have been using Unix since 1983, and Linux since version <1.0, and I would respectfully suggest that the author has missed the point of Docker.

However, if you want to use a shell script for setup instead of a Dockerfile, and don’t mind terminating and recreating VMs when you change anything, and your DNS is set up well, then yeah, that can work almost as well. I do that, sometimes.

The only problem I have with containerization is it’s not optimal. You’re adding all sorts of unnecessary overhead that’s not needed, often times to avoid an underlying problem.

Unfortunately, the real software world doesn’t solve underlying problems, they just want things up and running as soon as possible. So Containerization has proved to be pretty useful.

From a hacker perspective, it’s just boring in the same way I feel about AI. It takes the fun out of crafting software.

> You might say that doing such a little operation becomes easier after being more familiar with containerization—I’m sure that’s true, absolutely.

If you admit this, then why do you go on to write against docker in such an authoritative tone?

I don’t think you understand docker.

That... was not a very convincing article! It came across as a frustrated op-ed where the author intentionally focused on the negatives rather than steel manning their own argument. Any potential positives were handwaved as out-of-scope.

VSCode devcontainers are awesome. They are my default way of working on any new project.

Being able to blow away a container and start with a fresh, reproducible setup - at any time - saves so many headaches.

> There are basically only two “real” reasons to use Docker or containerization more generally:

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

> 2. People who are deploying a program for a corporation at a massive enterprise scale, don’t care about customizability and need some kind of guarantor of homogeneity.

Unix is only around because of its use at massive enterprise scale. Very few people were using Unix instead of DOS (or Mac OS or Windows or whatever) for their home PCs; it only got popular and people learned how to use it and later Linux because of its use in business. Nowadays, Docker is the standard packaging system at massive enterprise scale. As such, you should learn to use it

Docker has so much overhead (complexity and technical) - I hear people recommend it for simplicity all the time and assume they have out-of-date, insecure setups ... Docker containers require more setup to secure and backup in my experience.
Very unconvincing. With container images, you can use docker compose or k8s to declare and deploy your entire service architecture. That is… massively useful.
For the most part people decide to create Docker containers like they're deploying everything to heavy prod so they chop the image down super narrow. Just solve for your own use-case. I run my blog and other things on a homeserver with a Cloudflare reverse proxy in front of it and I don't use `docker` strictly but I do use systemd quadlets and podman and it's the same thing.

If you're upset with your tooling in your Docker image, just make it so you can become root in it, make sure it has debug tooling, and so on and so forth. Nothing stops you from running `updatedb` and `locate` in it. It's just an overlayfs for the fs nothing fancy.

I understand somewhat the urge for this. There is some containerization overhead and at a small prop trading shop we wouldn't do it (apart from the annoyance of plumbing onload etc. I never figured out how to control scheduling properly) but for most things containers are a godsend.

Old man yells at modern packaging solutions.
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.
This reads less like an article about the downsides of Docker and more like an article about how someone doesn’t fully understand Docker.

Not that I think Docker should always be used. It’s a simple piece tech on the surface but explodes in complexity the more complicated you try to get.

All that said, this article feels detached from reality.

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.
Wasm Components, deployed on wasmCloud.

IMHO, that's the way to go. Instead of hundreds of megabytes or even gigabytes, we're talking kilobytes, sometimes megabytes for each unit of compute.

Actually sandboxed environments per component.

Add/remove permissions of who can execute what at runtime.

But then again, I'm biased towards modern tech and while it often turns out I was right on the money, it's not always the case.

Do your own research and such, but FYI about wasmCloud.

Docker gives me at least some form of isolation. Yes, I know container escapes are possible but I run gvisor on top of it which is a strong sandbox. If I was just running as a systemd service as a user, all the attacker needs is a linux LPE, which is in abundance
Containerization is so widespread... from almost every single programming book and beginner class to the foundation for most of the Internet running today. As a technology, it's very easy to teach. I suggest keeping an open mind with relevant and ubiquitous technology and at least coming up with a compelling alternative for any of the use wildly popular use cases that have made it commodity tech at this point.

Lack of real moderation and reddit tier opinions like this are why I no longer visit this site on a daily or even regular basis.

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.