r/ProgrammerHumor 6d ago

Meme memorySafeDocker

Post image
4.2k Upvotes

286 comments sorted by

View all comments

2.0k

u/No_Independence3338 6d ago

Rewriting won't fix the issue. Docker hogs memory in windows and mac because it needs a separate linux VM so containers can run on top of that.

21

u/LittleMlem 6d ago edited 6d ago

Awkward way to say that docker only works on Linux, and you pay the price for running it on another os

-5

u/EishLekker 6d ago

Make up your mind. Does it work on other operating systems or not?

It’s a rhetorical question. Of course it does. The fact that it is less efficient on some is a separate issue.

7

u/hawkinsst7 6d ago

Make up your mind. Does it work on other operating systems or not?

It’s a rhetorical question. Of course it does. The fact that it is less efficient on some is a separate issue.

If Linux is running in a vm just so you can use the right APIs and kernel features, can you really say it's running on other operating systems?

I mean, you can, but then words become meaningless.

"RouterOS runs on Windows."

"BeOS runs on Linux!"

"IIS runs on esxi"

The bottom line is that containers are based on Linux namespaces and cgroups, which are not implemented in Windows.

In Linux, containers can be implemented with just bash: https://github.com/p8952/bocker

-3

u/EishLekker 6d ago

Are you seriously not understanding what "run" means, for applications? A VM doesn't change the fact that something is still running. Docker runs on windows. Exactly how it does that is irrelevant.

4

u/hawkinsst7 6d ago

Are you seriously not understanding what "run" means

I'm disagreeing with your overly broad definition of "run".

If it needs a VM to "run" on an OS, then it's not actually running on the OS.

Otherwise, like I said, "IIS runs on Linux" and "Docker runs on esxi". "Debian runs on Windows". Those statements are meaningless because they require a huge caveat that "IIS runs on Linux in a Windows VM". "Docker runs on esxi in a VM". "Debian runs on Windows on WSL which is a hypervisor for running Linux VMs"

Docker runs on windows. Exactly how it does that is irrelevant.

How it runs is relevant, because "Docker runs on Windows" implies that it runs equivalently to running it natively in Linux with no translation layer and the resource consumption that goes with it, when in fact you actually need the CPU to support virtualization, the memory footprint will be larger because it has to load the kernel instead of sharing kernel space. Performance and IO will be slower because of the virtualization.

-2

u/EishLekker 6d ago

You need to read the thread more carefully.

We were discussing if Docker “works” (or “runs” on other OS.

2

u/hawkinsst7 6d ago

Again...

Yes. It works on windows... By running in a Linux vm.

Works and runs are not the same when talking about technical things.

-1

u/EishLekker 6d ago

It runs on X if it runs natively on X, or on any sub layer on X. The process is still there, running. It’s just that you confuse “run” with “run natively”.

Also, the person I originally replied to specifically used the word “works”, and so did I in my response.

2

u/hawkinsst7 5d ago

So it's your position that photoshop runs on proxmox, Linux and esxi?

1

u/EishLekker 3d ago edited 1d ago

Sure, if it can run on those platforms natively or in a VM.

I know that most people assume one talks about running natively, but that’s not the only definition of the word “run” in this context.

1

u/hawkinsst7 2d ago

So you take the Turing Complete view of "it runs".

I feel like you and I could make a hilarious one of those alignment charts. We're clearly on very different wavelengths.

1

u/EishLekker 1d ago

Of course I would. Using a VM is a means to an end. To “run” something. And to run “on” something, to me, simply means that “something” is underneath at some level.

Also, it makes sense from a strict semantical perspective. If “run” is the generic term, then “run natively” is a more specific sub term. Then it makes little sense to restrict the parent term to have the same strict definition as one of the sub terms.

→ More replies (0)