this post was submitted on 03 Jul 2023
985 points (97.9% liked)

Programmer Humor

19149 readers
1318 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 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] jk47 10 points 1 year ago (8 children)

Is that still true? I use Linux but my coworker said docker runs natively now on the M1s but maybe he was making it up

[–] [email protected] 8 points 1 year ago (4 children)

I suspect they meant it runs natively in that it’s an aarch64 binary. It’s still running a VM under the hood because docker is really just a nice frontend to a bunch of Linux kernel features.

[–] [email protected] 1 points 1 year ago (3 children)

docker is really just a nice frontend to a bunch of Linux kernel features.

What does it do anyway? I know there's lxc in the kernel and Docker not using it, doing it's own thing, but not much else.

[–] [email protected] 3 points 1 year ago

I can't remember exactly what all the pieces are. However, I believe its a combination of

  • cgroups: process isolation which is why you can see docker processes in ps/top/etc but you can't for vms. I believe this is also what gets you the ability to run cross distro images since the isolation ensures the correct shared objects are loaded
  • network namespaces: how they handle generating the isolated network stack per process
  • some additional mount magic that I don't know what its called.

My understanding is that all of the neat properties of docker are actuall part of the kernel, docker (and podman and other container runtimes) are mostly just packing them together to achieve the desired properties of "containers".

load more comments (2 replies)
load more comments (2 replies)
load more comments (5 replies)