this post was submitted on 17 Nov 2024
292 points (98.7% liked)
Programmer Humor
32542 readers
489 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
People don’t actually do this, right? Docker inside docker inside a VM inside another VM? On windows? Right????
I'm pretty sure docker recommends that it runs under WSL when on windows.
Windows itself is technically running in a VM if you have Hyper-V enabled (not quite that simple, but that's a reasonable approximation). Hyper-V is a type 1 hypervisor which means it runs directly on the underlying physical hardware, and both Windows as well as any VMs you create are running on top of Hyper-V.
Oh that's an interesting tidbit, didn't know that
Yeah, docker in a VM makes sense. Docker in docker in a vm in a vm though?
Yep, can confirm
I've seen docker inside a VM before but that was just a dev box for testing
That's super standard for actual infrastructure
That's the most reasonable part of the image
Are you not losing loads of performance by stacking vms like that?
Using Docker in a VM on a Hypervisor is industry standard, using docker inside of docker may be okay for CI purposes but I wouldn't do anything more than that in production if it's not necessary.
The stack from the image above (Windows>WSL> Docker>Minikube>Docker>App) is something you'd use on a dev machine (not a "real", production-like test environment), in which case you don't really care about the performance loss
Isnt that exactly what minikube is? Kubernetes in docker.
I've used docker-in-docker images, but its usually not fun.
I've ran Docker in LXC in a KVM before. I used LXC to have multiple containers on a VPS. Then I had to run something that works best with Docker, so I stuck Docker in an LXC.