Hacker News new | past | comments | ask | show | jobs | submit login

VMs through things like Docker for Mac, in our case.

And yes - it’s exactly the same as you can do if you use x86 servers and dev machines.

It’s just the fact that we can also do this for ARM on hardware that doesn’t suck that makes using ARM in production more practical for us.




Just as an aside, the same process works painlessly with podman, too, if your employer is allergic to Docker. Maybe once or twice a year I get reminded that I’m not using x86 - and it sure is nice to work all day and finish with 60% battery.


Is this battery savings from using podman instead of docker for mac or using docker for max with M1/M2?


Running on ARM itself is a big power savings. Docker Desktop also had issues with CPU load which they might have improved since I stopped using it a couple of years ago. There were a bunch of GitHub issues starting around 2018 which were closed, moved, reopened, and it looks like it’s still a concern whereas with Podman I’ve been able to use it without thinking about it.


Sorry I missed the details:

"Does that mean you're all running asahi linux or are you somehow running linux elf binaries on macOS?" So you're running whatever linux districtuion you want or some particular flavor through Docker on Mac? And you don't have ELF binaries because you're using precompiled packages for ARM and don't need weirdo prebuilt ELFs, or you have a workaround?


Docker for Mac runs a full-blown Linux kernel last time I checked (Docker for Windows can use Windows containers). So whatever OS they run on the cloud (with OCI) these containers are going to work on the (very fast) M1/M2. The OS the Docker images are using is irrelevant. The OS running in the cloud is irrelevant. Only relevant factor is Docker for Mac as it means Linux kernel overhead. But this is offset by M1/M2. Clever setup!


Exactly this.

Plus as the Apple virtualisation framework now implements pretty standard virtual hardware - it uses virtio - we are finding things work vastly better in Docker for Mac - particularly as we can use virtiofs etc to pass files through from the host.


The interesting thing is, how is Docker for Mac able to run x86 containers at speed when Apple's Developer Documentation for Rosetta says it can't be used for virtual machines?

Or have they just embedded the QEMU on-demand translator with binfmt_misc in the ARM virtual machine and the M1/M2 is just powerful enough to make users not notice what's going on?

[1] https://developer.apple.com/documentation/apple-silicon/abou...


Rosetta can be used to emulate individual processes inside a linux-based virtual machine - Apple provide tooling for this: https://developer.apple.com/documentation/virtualization/run...


> Docker for Windows can use Windows containers

I thought Windows containers never went anywhere. Interesting to hear that they are still a thing.


Yes, but pretty much in the same sad state as they were a few years ago. We're running a few in production and next time we touch it we're replacing them with Windows Server Core EC2 instances built from baked images.

Note on Linux containers:

Running Linux containers on Windows requires the use of LinuxKit or WSL. Docker Desktop for Windows requires you switch modes between Linux container mode and Windows container mode as you can't run both simultaneously. A workaround is to install an additional Docker daemon inside the WSL environment. Most people are going to install Docker Desktop and use WSL in Linux mode. It's fine. Hopefully my facts are up-to-date.


Windows containers have improved quite a lot in Windows 11.


We deploy containers to production, and use variants of the same containers for local development - mostly Debian.

Those containers contain a mix of custom built software and packages from the distro.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: