Comment by dedicate

7 days ago

Okay, the AI stuff is cool, but that "Containerization framework" mention is kinda huge, right? I mean, native Linux container support on Mac could be a game-changer for my whole workflow, maybe even making Docker less of a headache.

FWIW, here are the repos for the CLI tool [1] and backend [2]. Looks like it is indeed VM-based container support (as opposed to WSLv1-style syscall translation or whatever):

  Containerization provides APIs to:
  [...]
  - Create an optimized Linux kernel for fast boot times.
  - Spawn lightweight virtual machines.
  - Manage the runtime environment of virtual machines.

[1] https://github.com/apple/container [2] https://github.com/apple/containerization

  • I'm kinda ignorant about the current state of Linux VMs, but my biggest gripe with VMs is that OS kernels kind of assume they have access to all the RAM the hardware has - unlike the reserve/commit scheme processes use for memory.

    Is there a VM technology that can make Linux aware that it's running in a VM, and be able to hand back the memory it uses to the host OS?

    Or maybe could Apple patch the kernel to do exactly this?

    Running Docker in a VM always has been quite painful on Mac due to the excess amount of memory it uses, and Macs not really having a lot of RAM.

    • It's still a problem for containers-in-VMs. You can in theory do something with either memory ballooning or (more modern) memory hotplugging, but the dance between the OS and the hypervisor takes a relatively long time to complete, and Linux just doesn't handle it well (eg. it inevitably places unmovable pages into newly reserved memory, meaning it can never be unplugged). We never found a good way to make applications running inside the VM able to transparently allocate memory. You can overprovision memory, and hypervisors won't actually allocate it on the host, and that's the best you can do, but this also has problems since Linux tends to allocate a bunch of fixed data structures proportional to the size of memory it thinks it has available.

    • > Is there a VM technology that can make Linux aware that it's running in a VM, and be able to hand back the memory it uses to the host OS?

      Isn't this an issue of the hypervisor? The guest OS is just told it has X amount of memory available, whether this memory exists or not (hence why you can overallocate memory for VMs), whether the hypervisor will allocate the entire amount or just what the guest OS is actually using should depend on the hypervisor itself.

      5 replies →

    • The short answer is yes, Linux can be informed to some extent but often you still want a memory balloon driver so that the host can “allocate” memory out of the VM so the host OS can reclaim that memory. It’s not entirely trivial but the tools exist, and it’s usually not too bad on vz these days when properly configured.

    • It’s one reason i don’t like WSL2. When you compile something which needs 30 GB RAM the only thing you can do is terminate the wsl2 vm to get that ram back.

      1 reply →

  • I just noticed the addition of container cask when I ran b”brew update”.

    I chased the package’s source and indeed it’s pointing to this repo.

    You can install and use it now on the latest macOS (not 26). I just ran “container run nginx” and it worked alright it seems. Haven’t looked deeper yet.

    • There’s some problem with networking: if you try to run multiple containers, they won’t see each other. Could probably be solved by running a local VPN or something.

  • WSLv1 never supported a native docker (AFAIK, perhaps I'm wrong?)

    That said, I'd think apple would actually be much better positioned to try the WSL1 approach. I'd assume apple OS is a lot closer to linux than windows is.

    • In the end they're probably run into the same issues that killed WSL1 for Microsoft— the Linux kernel has enormous surface area, and lots of pretty subtle behaviour, particularly around the stuff that is most critical for containers, like cgroups and user namespaces. There isn't an externally usable test suite that could be used to validate Microsoft's implementation of all these interfaces, because... well, why would there be?

      Maintaining a working duplicate of the kernel-userspace interface is a monumental and thankless task, and especially hard to justify when the work has already been done many times over to implement the hardware-kernel interface, and there's literally Hyper-V already built into the OS.

It's impossible to have "native" support for Linux containers on macOS, since the technology inherently relies on Linux kernel features. So I'm guessing this is Apple rolling out their own Linux virtualization layer (same as WSL). Probably still an improvement over the current mess, but if they just support LXC and not Docker then most devs will still need to install Docker Desktop like they do today.

  • Apple has had a native hypervisor for some time now. This is probably a baked in clone of something like https://mac.getutm.app/ which provides the stuff on top of the hypervisor.

    • In case you're wondering, the Hypervisor.framework C API is really neat and straightforward:

      1. Creating and configuring a virtual machine:

          hv_vm_create(HV_VM_DEFAULT);
      

      2. Allocating guest memory:

          void* memory = mmap(...);
          hv_vm_map(memory, guest_physical_address, size, HV_MEMORY_READ | HV_MEMORY_WRITE | HV_MEMORY_EXEC);
      

      3. Creating virtual CPUs:

          hv_vcpu_create(&vcpu, HV_VCPU_DEFAULT);
      

      4. Setting registers:

          hv_vcpu_write_register(vcpu, HV_X86_RIP, 0x1000); // Set instruction pointer
          hv_vcpu_write_register(vcpu, HV_X86_RSP, 0x8000); // Stack pointer
      

      5. Running guest code:

          hv_vcpu_run(vcpu);
      

      6. Handling VM exits:

          hv_vcpu_exit_reason_t reason;
          hv_vcpu_read_register(vcpu, HV_X86_EXIT_REASON, &reason);

      1 reply →

    • One of the reasons OrbStack is so great is because they implement their own hypervisor: https://orbstack.dev/

      Apple’s stack gives you low-level access to ARM virtualization, and from there Apple has high-level convenience frameworks on top. OrbStack implements all of the high-level code themselves.

      3 replies →

    • Using a hypervisor means just running a Linux VM, like WSL2 does on Windows. There is nothing native about it.

      Native Linux (and Docker) support would be something like WSL1, where Windows kernel implemented Linux syscalls.

      18 replies →

  • The screenshot in TFA pretty clearly shows docker-like workflows pulling images, showing tags and digests and running what looks to be the official Docker library version of Postgres.

    • Every container system is "docker-like". Some (like Podman) even have a drop-in replacement for the Docker CLI. Ultimately there are always subtle differences which make swapping between Docker <> Podman <> LXC or whatever else impossible without introducing messy bugs in your workflow, so you need to pick one and stick to it.

      3 replies →

    • Yeah, from a quick glance the options are 1:1 mapped so an

        alias docker='container'
      

      Should work, at least for basic and common operations

  • What about macOS being derived from BSD? Isn’t that where containers came from: BSD jails?

    I know the container ecosystem largely targets Linux just curious what people’s thoughts are on that.

    • „Container“ is sort of synonymous with „OCI-compatible container“ these days, and OCI itself is basically a retcon standard for docker (runtime, images etc.). So from that perspective every „container system“ is necessarily „docker-like“ and that means Linux namespaces and cgroups.

      7 replies →

    • Conceptually similar but different implementations. Containers uses cgroups in Linux and there is also file system and network virtualization as well. It's not impossible but it would require quite a bit of work.

    • BSD jails are architected wholly differently from what something like Docker provides.

      Jails are first-class citizens that are baked deep into the system.

      A tool like Docker relies using multiple Linux features/tools to assemble/create isolation.

      Additionally, iirc, the logic for FreeBSD jails never made it into the Darwin kernel.

      Someone correct me please.

      6 replies →

  • WSL throughput is not enough for file intensive operations. It is much easier and straightforward to just delete windows and use Linux.

    • Using the Linux filesystem has almost no performance penalty under WSL2 since it is a VM. Docker Desktop automatically mounts the correct filesystem. Crossing the OS boundary for Windows files has some overhead of course but that's not the usecase WSL2 is optimized for.

      With WSL2 you get the best of both worlds. A system with perfect driver and application support and a Linux-native environment. Hybrid GPUs, webcams, lap sensors etc. all work without any configuration effort. You get good battery life. You can run Autodesk or Photoshop but at the same time you can run Linux apps with almost no performance loss.

      3 replies →

  • WSL doesn't have a virtualization layer, WSL1 did have but it wasn't a feasible approach so WSL2 is basically running VMs with the Hyper-V hypervisor.

    Apple looks like it's skipped the failed WSL1 and gone straight for the more successful WSL2 approach.

> Meet Containerization, an open source project written in Swift to create and run Linux containers on your Mac. Learn how Containerization approaches Linux containers securely and privately. Discover how the open-sourced Container CLI tool utilizes the Containerization package to provide simple, yet powerful functionality to build, run, and deploy Linux Containers on Mac.

https://developer.apple.com/videos/play/wwdc2025/346/

  • > Containerization executes each Linux container inside of its own lightweight virtual machine.

    That’s an interesting difference from other Mac container systems. Also (more obvious) use Rosetta 2.

    • Podman Desktop, and probably other Linux-containers on macOS tools, can already create multiple VMs, each hosting a subset of the containers you run on your Mac.

      What seems to be different here, is that a VM per each container is the default, if not only, configuration. And that instead of mapping ports to containers (which was always a mistake in my opinion), it creates an externally routed interface per machine, similar to how it would work if you'd use macvlan as your network driver in Docker.

      Both of those defaults should remove some sharp edges from the current Linux-containers on macOS workflows.

The ground keeps shrinking for Docker Inc.

They sold Docker Desktop for Mac, but that might start being less relevant and licenses start to drop.

On Linux there’s just the cli, which they can’t afford to close since people will just move away.

Docker Hub likely can’t compete with the registries built into every other cloud provider.

  • There is already a paid alternative, Orbstack, for macOS which puts Docker for Mac to shame in terms of usability, features and performance. And then there are open alternatives like Colima.

  • That is why they are now into the reinventing application servers with WebAssembly kind of vibe.

    • It’s really awful. There’s a certain size at which you can pivot and keep most of your dignity, but for Docker Inc., it’s just ridiculous.

It's cool but also not as revolutionary as you make it sound. You can already install Podman, Orbstack or Colima right? Not sure which open-source framework they are using, but to me it seems like an OS-level integration of one of these tools. That's definitely a big win and will make things easier for developers, but I'm not sure if it's a gamechanger.

  • All those tools use a Linux VM (whether managed by Qemu or VZ) to run the actual containers, though, which comes with significant overhead. Native support for running containers -- with no need for a VM -- would be huge.

    • Still needs a VM. It'll be running more VMs than something like orbstack, which I believe runs just one for the docker implementation. Whether that means better or worse performance we'll find out.

    • there's still a VM involved to run a Linux container on a Mac. I wouldn't expect any big performance gains here.

    • Yes, it seems like it's actually a more refined implementation than what currently exists. Call me pleasantly surprised!

It looks like nothing here is new: we have all the building blocks already. What Apple done is packaged it all nicely, which is nothing to discount: there's a reason people buy managed services over just raw metal for hosting their services, and having a batteries included development environment is worth a premium over the need to assemble it on your own.

The containerization experience on macOS has historically been underwhelming in terms of performance. Using Docker or Podman on a Mac often feels sluggish and unnecessarily complex compared to native Linux environments. Recently, I experimented with Microsandbox, which was shared here a few weeks ago, and found its performance to be comparable to that of native containers on Linux. This leads me to hope that Apple will soon elevate the developer experience by integrating robust containerization support directly into macOS, eliminating the need for third-party downloads.

  • Docker at least runs a linux vm that runs all those containers. Which is a lot of needless overhead.

    The equivalent of Electron for containers :)

yeah -- I saw it's built on "open source foundations", do you know what project this is?

  • If I had to guess, colima? But there are a number of open source projects using Apple's virtualisation technologies to run a linux VM to host docker-type containers.

    Once you have an engine podman might be the best choice to manage containers, or docker.

  • Being able to drop Docker Desktop would be great. We're using Podman on MacOS now in a couple places, it's pretty good but it is another tool. Having the same tool across MacOS and Linux would be nice.

    • Migrate to Orbstack now, and get a lot of sanity back immediately. It’s a drop-in replacement, much faster, and most importantly, gets out of your way.

    • I have to drop docker desktop at work and move to podman.

      I'm the primary author of amalgamation of GitHub's scripts to rule them all with docker compose so my colleagues can just type `script/setup` and `script/server` (and more!) and the underlying scripts handle the rest.

      Apple including this natively is nice, but I won't be a able to use this because my scripts have to work on linux and probably WSL

  • Colima is my guess, only thing that makes sense here if they are doing a qemu vm type of thing

    • That's my guess too... Colima, but probably doing a VM using the Virtualization framework. I'll be more curious if you can select x86 containers, or if you'll be limited to arm64/aarch64. Not that it really makes that much of a difference anymore, you can get pretty far with Linux Arm containers and VMs.

  • Should be easy enough, look for the one with upstream contributions from Apple.

    Oh, wait.

They Sherlocked OrbStack.

  • Well, Orbstack isn't really anything special in terms of its features, it's the implementation that's so much better than all the other ways of spinning up VMs to run containers on macos. TBH, I'm not 100% sure 2025 Apple is capable anymore of delivering a more technically impressive product than orbstack ...

  • Microsoft did it first to Virtual Box / VMWare Workstation thought.

    That is what I have been using since 2010, until WSL came to be, it has been ages since I ever dual booted.

I’ve been using Colima for a long while with zero issues, and that leverages the older virtualization framework.

Ok, I've squeezed containerization into the title above. It's unsatisfactory, since multiple announced-things are also being discussed in this thread, but "Apple's kitchen-sink announcement from WWDC this year" wouldn't be great either, and "Apple supercharges its tools and technologies for developers to foster creativity, innovation, and design" is right out.

https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...

  • Title makes sense to me.

    It seems like a big step in the right direction to me. It's hard to tell if its 100% compatible with Docker or not, but the commands shown are identical (other than swapping docker for container).

    Even if its not 100% compatible this is huge news.

  • > Apple Announces Foundation Models and Containerization frameworks, etc.

    This sounds like apple announced 2 things, AI models and container related stuff I'd change it to something like:

    > Apple Announces Foundation Models, Containerization frameworks, more tools

    • The article says that what was announced is "foundation model frameworks", hence the awkward twist in the title, to get two frameworkses in there.