Kubernetes: I will ruin your fucking life
I’ve recently spent a fair amount of time trying to peel my blog away from my existing framework due to how much I hated using docker to just build a website, it doesn’t need to be this heavyweight.
If you’re doing it right, containers are less like VMs and more like cgroups. If orchestrated correctly it uses less system resources to run lots of services on a single system/node.
That said, I’m a devops/infrastructure/network professional and not a developer, so maybe I’m missing something from the dev experience… But I love containers.
Docker does kinda suck now, though. Use podman or another interface instead if you can help it.
Why is docker bad now and what makes pdoman better?
I see but I do wonder if docker has so many more cves partly because it has way more users.
It seems that Podman is more lightweight. Less code = less errors. And there are some architectural differences. But i’m only googling stuff.
If done correctly, it also forces devs to write smaller more maintainable packages.
Big if though. I’ve seen many a terrible containerized monolithic app.
I’ve seen many a terrible containerized monolithic app.
I’ve seen plenty of self-hosters complain when an app needs multiple containers, to the point where people make unofficial containers containing everything. I used to get downvoted a LOT on Reddit when I commented saying that separating individual systems/daemons into separate containers is the best practice with Docker.
Separate containers works like a dream when one app starts shitting the bed, gets auto-cycled, and everyone else just chills. Not surprised on the Reddit downvotes though. That place is so culty, especially now.
Weak one. Let’s ideate on a better version
STOP DOING DOCKER
-
Virtualization was supposed to reduce the overhead, not create entire DevOps departments.
-
Years of containerization yet no real use over
make clean; make build
-
Wanted to deploy your app in the “cloud” anyways for a laugh? we had a tool for it, it’s called
rsync
-
Let’s run a virtual container in
--privileged
mode, so we can manage system resources from it – Statements dreamt up by utterly Deranged
Look at what tech interviews have been demanding your Respect for all these years. (These are real documentation examples for how a simple virtualization supposedly works)
–
Hello, I would like to put 20 terabytes of “images” into my /var/lib/, please!
They played us for absolute fools!
A good example of a similar meme: https://i.redd.it/uew0stv0mff61.jpg
The owner of the site does not allow hotlinking to the resource.
And who’s gonna stop us?
Cloudflare, apparently
And I feel like this is going to be my new
Find My IP
service.
Your version is better than OP
- Let’s run a virtual container in
--privileged
mode, so we can manage system resources from it
Seriously?
agree or disagree with facts and arguments.
Right now it’s not clear if your reaction is pointed towards the privileged mode or towards its criticism.
- Let’s run a virtual container in
-
BSD Jails have entered the chat …
That’s one of my dilemmas. Due to using BSD and relying on jails I have a hard time using lots of possibly nice apps being released nowadays because they only offer the docker way of installing.
pledge() and unveil() were already compiled into the chat client
This meme but unironically
For real though, containerization isn’t the only way to separate applications from each other but totally fine, it’s the “It works on my machine, so here’s my machine” mentality that doesn’t fill me with confidence. I’ve seen too much barely-working jank in containers that probably only get updated when a new version of the containerized application itself is released.
What gets me is people migrating from VMs treating it like an entire host machine.
There is a lack of knowledge among developers regarding precompiling assets and classes (if interpreted), and people are trying to do too much in startup scripts.
Another thing I hate is wrapping the entire process in a script because people want to kill the main process without restarting the container. Yikes!
I like containers. But they do have a habit of nurturing cludgy temporary hacks into permanent infrastructure, by sweeping all the ugly bits under the big whale-shaped rug.
Nix user arrives to the room.
Can you elaborate?
Nix can build you a bit-to-bit exact environment for your app. It is a superior environment, but is hard to use in the beginning and users can feel snobby sometimes. It is awesome, but YMMV.
How do you separate Nix programs from the rest of the system?
It creates a set of symlinks so every program sees exactly the dependencies it needs.
https://nixos.org/guides/nix-pills/09-automatic-runtime-dependencies#automatic-runtime-dependencies
You can also create a container:
https://nixos.wiki/wiki/NixOS_Containers
Or you can create reproducible docker containers with nix:
https://dev.to/anurag_vishwakarma/a-better-way-to-build-reproducible-docker-images-with-nix-2k59
The secret sauce with nix is reproducibility. If it builds once, it will continue building exactly like that forever. Bit by bit.
That’s very interesting, I was aware of how NixOS separated dependency versions but I didn’t know it natively supported containers.
Why does this feel like it’s a flat-earth slide? I haven’t looked at any flat-earth propaganda, but I strongly suspect that it looks a lot like this.
That said, I’ll stick with my VMs regardless. I like simplicity.
Are VMs really simpler? I’d say no.
I would vote for docker as well. The last time I had to inherit a system that ran on virtual machines, it was quite a pain to figure out how the software was installed, what was where in the file system, and where all the configuration was coming from. Replicating that setup took months of preparation.
By contrast, with Docker, all your setup is documented. The commands that were used to install our software into the virtual machines and were long gone are present right there in the Docker file. And building the code? An even bigger win for Docker. In the VM project, the build environment for the C++ portion of our codebase was configured by about a dozen environment variables, none of which were documented. If it were built in Docker, all the necessary environment variables would have been right there in the build environment. Not to mention the build commands themselves would be there too, whereas with VMs, we would often have developers build locally and then copy it into the VM, which was terrible for reproducibility and onboarding new developers.
That said, this all comes down to execution - a well-managed VM system can easily be much better than a poorly managed Docker system. But in general, I feel that Docker tends to be easier to work with than a VM. While Docker is far from flawless, there are a lot more things that can make life harder with VMs, at least from my experience.
I was so relieved to never need VM’s again after discovering Docker.
The absurd waste of resources VMs bring… LXC and Docker a godsend in that regard.
Nix has flakes;
nix run
can contain pretty much all of the needed dependencies. If that’s not enough, you can set up an entire container as a module.
Containers are a great way run applications.
Docker is a piece of garbage by a company way too far down the enshittification slide.
hahahahahahaj I don’t know if it is funny because it is absurd or if it is funny because there are some folks out there that really think like that hahahahah
This meme format works best to absurdly overstate the uselessness of something you find mildly annoying. That’s when it’s funniest, because the criticisms are grounded in something real, and the low-stakes controversy makes the aggressive tone funny in context.
I use podman and have absolutely no idea what I am doing. Send help
Reading about all the security issues in Docker lately, i’m thinking about using LXC via Incus/Proxmox. Should i? Or podman?
I just put my docker services in a lxc container. Docker is neat and lets me deploy shit without having to worry. Works pretty well, just remember to put your lxc containers on your SSD and not your raid mass storage (my hdds have errors now, fuck)
I need all of these! I already have them for data structures and agile but this is also golden!
very cool and based; I take it you’re a chroot fan?
I wish I understood this because it seems funny
Moral of the story: never make breaking changes. Always backwards compatible, always.
It’s worked for Windows?
When you’re 90% of the market you get away with telling everyone else to suck your dick.
It’s not that funny.
Docker is like a virtual machine, but you only run one specific program in it. About exactly what the meme describes.
You ain’t missing much