• herrvogel@lemmy.world
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    edit-2
    1 year ago

    Docker is not great on MacOS on Apple Silicon. Docker engine uses A TON of memory, around 8 gigs even with no containers running, and you can run into compatibility issues. My office, where we use Docker extensively, upgraded everyone’s workstations to Apple silicon Macbook pros recently. We’ve been less than thrilled so far because turns out one of the images that we use as the base for many of our projects has trouble running on ARM chips. We fixed the problem, but still it was a whole thing. And there’s no guarantee another similar problem won’t pop up in the future either, unfortunately.

    While it undeniably is a fantastic machine otherwise, I honestly think a higher end Dell or whatever that runs Linux would have been a better choice for the job. At least for the developer staff.

    • joneskind@lemmy.world
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      1 year ago

      So your problem has nothing to do with ARM architecture or macOS itself, but on a lack of RAM.

      Docker uses a lot of RAM on every platform, not only on macOS.

      Looks like your company made a bad decision when choosing its hardware.

      We use 16Gb M2 Pro to run docker instances running a copy of our infrastructure (ELK, CH, MariaDB, some maintenance batches, video encoding etc) with zero issue.

      • herrvogel@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        Docker most certainly does not use as much memory on Linux. Maybe on Windows, but not on Linux. It’s not an issue with the amount of RAM. I had the same amount of memory on my previous Linux machine and it never even started swapping, whereas the new Macs start swapping soon as my usual dev environment with all the containers and the software and whathaveyous is up. Fortunately the system handles it pretty well, so it’s not very noticeable.

        I mean one of the main selling points of Docker is that it’s not supposed to use a lot of memory to begin with because it’s not a full-on VM. Otherwise I’d never been able to run it on all my puny first gen Raspberry Pis and tiny LXCs. But of course this applies to Linux mostly, because it’s designed to share the Linux kernel. Hence the need to expend extra memory and CPU for compatibility on Windows and Macos.

        Do agree on the bad hardware decision bit though. Ours are 16GB M2 Pros too. The boss, who’s not the most tech-savvy person on the planet, chose those because that’s what he uses. One day we found out that we were getting new laptops and that they would be M2 Pros, and that was it. If I was in charge of the purchase, I would deck everyone out with high-end x64 laptops that have a usable number of IO ports. Would have been significantly cheaper too. Everyone is just alt-tabbing between their IDEs and terminals anyway, so they’d hardly miss the “macos experience”.

      • Lachy@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Docker for Mac has to run Linux in a virtual machine because macOS doesn’t natively support the containerisation APIs. That’s why it takes more memory and runs a bit slower than it does when running natively on a Linux machine.

      • anakaine@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        I want to go to Mac, but the cost of additional ram is horrendous, and it’s directly baked in to the soc. Through work I have a few very high end machines, and even the high end ECC ram I’ve put in those costs significantly less on a per mb basis than what’s going into the macs and cannot be upgraded if required.

        The value proposition just isn’t there at the scale I’m hoping to play with. 64gb ram would be wonderful for a machine, but that’s pushing into high end mac territory which adds a couple of extra grand in local currency to the price tag vs an x86 build.