this post was submitted on 02 Jul 2023
137 points (79.1% liked)
Apple
17525 readers
49 users here now
Welcome
to the largest Apple community on Lemmy. This is the place where we talk about everything Apple, from iOS to the exciting upcoming Apple Vision Pro. Feel free to join the discussion!
Rules:
- No NSFW Content
- No Hate Speech or Personal Attacks
- No Ads / Spamming
Self promotion is only allowed in the pinned monthly thread
Communities of Interest:
Apple Hardware
Apple TV
Apple Watch
iPad
iPhone
Mac
Vintage Apple
Apple Software
iOS
iPadOS
macOS
tvOS
watchOS
Shortcuts
Xcode
Community banner courtesy of u/Antsomnia.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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.
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.
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.
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".
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.