975
top 50 comments
sorted by: hot top controversial new old
[-] MoonlightFox@lemmy.world 68 points 17 hours ago* (last edited 17 hours ago)

There are another important reason than most of the issues pointer out here that docker solves.

Security.

By using containerization Docker effectively creates another important barrier which is incredibly hard to escape, which is the OS (container)

If one server is running multiple Docker containers, a vulnerability in one system does not expose the others. This is a huge security improvement. Now the attacker needs to breach both the application and then break out of a container in order to directly access other parts of the host.

Also if the Docker images are big then the dev needs to select another image. You can easily have around 100MB containers now. With the "distroless" containers it is maybe down to like 30 MB if I recall correctly. Far from 1GB.

Reproducability is also huge efficiency booster. "Here run these this command and it will work perfecty on your machine" And it actually does.

It also reliably allows the opportunity to have self-healing servers, which means businesses can actually not have people available 24/7.

The use of containerization is maybe one of the greatest marvels in software dev in recent (10+) years.

[-] MajorHavoc@programming.dev 3 points 2 hours ago* (last edited 2 hours ago)

Oof. I'm anxious that folks are going to get the wrong idea here.

While OCI does provide security benefits, it is not a part of a healthly security architecture.

If you see containers advertised on a security architecture diagram, be alarmed.

If a malicious user gets terminal access inside a container, it is nice that there's a decent chance that they won't get further.

But OCI was not designed to prevent malicious actors from escaping containers.

It is not safe to assume that a malicious actor inside a container will be unable to break out.

Don't get me wrong, your point stands: Security loves it when we use containers.

I just wish folks would stop treating containers as "load bearing" in their security plans.

[-] vin@lemmynsfw.com 4 points 4 hours ago

Sounds like an ugly retrofit of bsd jail

[-] AnarchistArtificer@slrpnk.net 3 points 5 hours ago

Containerized software is huge in the sciences for reproducible research. Or at least it will/should be (speaking as someone adjacent to bioinformatics and genomics)

[-] Landless2029@lemmy.world 43 points 16 hours ago
[-] scrubbles@poptalk.scrubbles.tech 12 points 11 hours ago

Yes, yes you really should

[-] OmegaLemmy@discuss.online 11 points 12 hours ago

I said this a year and a half ago and I still haven't, awful decision, I now own servers too so I should really learn them

[-] BlackPenguins@lemmy.world 1 points 1 hour ago* (last edited 1 hour ago)

There's a udemy course by Maximilian that is only $20 that helped me immensely. Highly recommend.

[-] Landless2029@lemmy.world 6 points 12 hours ago

The worse part is having the gear and STILL not learning/playing with it.

I got stuff to start !selfhosted@kbin.social like an old i5 minipc and even a 64gb i7 pro series laptop...

Theyre just sitting unplugged with mint on them.

[-] muntedcrocodile@lemm.ee 0 points 2 hours ago

What a waste of potential compute at least have it mining crypto in the background.

[-] OmegaLemmy@discuss.online 2 points 1 hour ago

Isn't Crypto unprofitable in countries with high energy cost?

[-] mynameisigglepiggle@lemmy.world 1 points 8 hours ago

You would be using them if you installed arch

/s

[-] Aceticon@lemmy.dbzer0.com 1 points 2 hours ago

Well, mucking about with configuration on a computer is a form of entertainment hence its "use" in a broader sense...

[-] alsaaas@lemmy.dbzer0.com 19 points 16 hours ago

Isn't Docker massively insecure when compared to the likes of Podman, since Docker has to run as a root daemon?

[-] chunkystyles@sopuli.xyz 12 points 15 hours ago

I prefer Podman. But Docker can run rootless. It does run under root by default, though.

[-] MoonlightFox@lemmy.world 14 points 16 hours ago* (last edited 15 hours ago)

I don't have in-depth knowledge of the differences and how big that is. So take the following with a grain of salt.

My main point is that using containerization is a huge security improvement. Podman seems to be even more secure. Calling Docker massively insecure makes it seem like something we should avoid, which takes focus away from the enormous security benefit containerization gives. I believe Docker is fine, but I do use Podman myself, but that is only because Podman desktop is free, and Docker files seem to run fine with Podman.

Edit: After reading a bit I am more convinced that the Podman way of handling it is superior, and that the improvement is big enough to recommend it over Docker in most cases.

[-] hemko@lemmy.dbzer0.com 5 points 16 hours ago

Not only that but containers in general run on the host system's kernel, the actual isolation of the containers is pretty minimal compared to virtual machines for example.

[-] MajorHavoc@programming.dev 2 points 2 hours ago* (last edited 2 hours ago)

It amused me that the votes on your comment (a simple factual statement) reflect how many people here vote without knowing what the fuck they're talking about.

[-] hemko@lemmy.dbzer0.com 1 points 1 hour ago* (last edited 1 hour ago)

I think many of the people don't understand the difference between containers vs VMs

[-] stetech@lemmy.world 5 points 8 hours ago

… With the tradeoff being containers much more lightweight and having much less overhead than VMs…

load more comments (2 replies)
[-] Ajen@sh.itjust.works 5 points 13 hours ago

You don't have to ship a second OS just to containerize your app.

load more comments (3 replies)
[-] Arghblarg@lemmy.ca 82 points 20 hours ago

Call me crusty, old-fart, unwilling to embrace change... but docker has always felt like a cop-out to me as a dev. Figure out what breaks and fix it so your app is more robust, stop being lazy.

I pretty much refuse to install any app which only ships as a docker install.

No need to reply to this, you don't have to agree and I know the battle has been already lost. I don't care. Hmmph.

[-] Aceticon@lemmy.dbzer0.com 2 points 2 hours ago* (last edited 2 hours ago)

It eliminates the dependency of specific distributions problem and, maybe more importantly, it solves the dependency of specific distribution versions problem (i.e. working fine now but might not work at all later in the very same distribution because some libraries are missing or default configuration is different).

For example, one of the games I have in my GOG library is over 10 years old and has a native Linux binary, which won't work in a modern Debian-based distro by default because some of the libraries it requires aren't installed (meanwhile, the Windows binary will work just fine with Wine). It would be kinda deluded to expect the devs would keep on updating the Linux native distro (or even the Windows one) for over a decade, whilst if it had been released as a Docker app, that would not be a problem.

So yeah, stuff like Docker does have a reasonable justification when it comes to isolating from some external dependencies which the application devs have no control over, especially when it comes to future-proofing your app: the Docker API itself needs to remain backwards compatible, but there is no requirement that the Linux distros are backwards compatible (something which would be much harder to guarantee).

Mind you, Docker and similar is a bit of a hack to solve a systemic (cultural even) problem in software development which is that devs don't really do proper dependency management and just throw in everything and the kitchen sink in terms of external libraries (which then depend on external libraries which in turn depend on more external libraries) into the simplest of apps, but that's a broader software development culture problem and most of present day developers only ever learned the "find some library that does what you need and add it to the list of dependencies of your build tool" way of programming.

I would love it if we solved what's essentially the core Technical Architecture problem of in present day software development practices, but I have no idea how we can do so, hence the "hack" of things like Docker of pretty much including the whole runtime environment (funnilly enough, a variant of the old way of having your apps build statically with every dependency) to work around it.

[-] Michal@programming.dev 64 points 20 hours ago

Docker is more than a cop out for than one use case. It's a way for quickly deploy an app irrespective of an environment, so you can scale and rebuild quickly. It fixes a problem that used to be solved by VMs, so in that way it's more efficient.

load more comments (8 replies)
[-] SpaceNoodle@lemmy.world 69 points 20 hours ago

Why put in a little effort when we can just waste a gigabyte of your hard drive instead?

I have similar feelings about how every website is now a JavaScript application.

[-] roofuskit@lemmy.world 25 points 18 hours ago

Yeah, my time is way more valuable than a gigabyte of drive space. In what world is anyone's not today?

[-] fallingcats@discuss.tchncs.de 2 points 5 hours ago* (last edited 5 hours ago)

A gigabyte of drive space is something like 10-20 cents on a good SSD.

[-] SpaceNoodle@lemmy.world 15 points 18 hours ago

It's a gigabyte of every customer's drive space.

load more comments (4 replies)
[-] milicent_bystandr@lemm.ee 13 points 18 hours ago

Mine, on my 128gb dual boot laptop.

[-] roofuskit@lemmy.world 8 points 16 hours ago

How many docker containers would you deploy on a laptop? Also 128gb is tiny even for an SSD these days .

load more comments (3 replies)
[-] ramble81@lemm.ee 22 points 18 hours ago

I hate that it puts package management in Devs hands. The same Devs that usually want root access to run their application and don’t know a vulnerability scan for the life of them. So now rather than having the one up to date version of a package on my system I may have 3 different old ones with differing vulnerabilities and devs that don’t want to change it because “I need this version because it works!”

[-] Zikeji@programming.dev 39 points 20 hours ago

If this is your take your exposure has been pretty limited. While I agree some devs take it to the extreme, Docker is not a cop out. It (and similar containerization platforms) are invaluable tools.

Using devcontainers (Docker containers in the IDE, basically) I'm able to get my team developing in a consistent environment in mere minutes, without needing to bother IT.

Using Docker orchestration I'm able to do a lot in prod, such as automatic scaling, continuous deployment with automated testing, and in worst case near instantaneous reverts to a previously good state.

And that's just how I use it as a dev.

As self hosting enthusiast I can deploy new OSS projects without stepping through a lengthy install guide listing various obscure requirements, and if I did want to skip the container (which I've only done a few things) I can simply read the Dockerfile to figure out what I need to do instead of hoping the install guide covers all the bases.

And if I need to migrate to a new host? A few DNS updates and SCP/rsync later and I'm done.

load more comments (7 replies)
[-] QuazarOmega@lemy.lol 17 points 19 hours ago

Docker or containers in general provide isolation too, not just declarative image generation, it's all neatly packaged into one tool that isn't that heavy on the system either, it's not a cop out at all.

If I could choose, not for laziness, but for reproducibility and compatibility, I would only package software in 3 formats:

  • Nix package
  • Container image
  • Flatpak

The rest of the native packaging formats are all good in their own way, but not as good. Some may have specific use cased that make them best like Appimage, soooo result...
Yeah, no universal packaging format yet

load more comments (10 replies)
load more comments
view more: next ›
this post was submitted on 09 Jan 2025
975 points (98.2% liked)

Programmer Humor

19910 readers
1989 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS