Apple Silicon M1 Chips and Docker
docker.com
docker.com
Ideally, they could leverage Rosetta2 to run x64 containers under macOS on Apple Silicon ... but I guess Apple isn't playing ball (because otherwise they would have probably announced it at WWDC).
At this point I see an Apple Silicon based Mac is just a consumer device, I don't think I'm going to be able to use it in anger for development work at the moment (other than for Mac consumer apps).
Not really sure what Apple have to lose here ... but if Macs with Apple Silicon are not a viable dev platform for "mainstream" containers, then that's going to drive developers to Linux (or Windows).
1: https://www.macrumors.com/2020/11/12/rosetta-2-translation-c...
Saying "didn't want to support" implies that one can "just" repurpose binary translation with a few build settings. You're off by several orders of magnitude.
Anandtech's benchmarks: https://www.anandtech.com/show/15578/cloud-clash-amazon-grav... Here's a tweet about one company's experience: https://twitter.com/lizthegrey/status/1314618333140971521
Not everyone runs Docker or similar to do their work.
If it turns out that Apple’s performance claims are true, I don’t see people easily letting it go, a snappy machine is a serious advantage. After all, we are in this deep trouble because of the endless layers of abstraction, so I don’t see it getting any speedier anytime soon for the status quo.
Amazing blank sheets could open on this news M1 macs.
The performance claims are substantial, it could mean 3000$ snappiness at 1000$. A bit like making cheap DSLR and now everyone is a professional photographer, making room for new tools for the new comers.
Mac prices are the gatekeeper for the Apple dev ecosystem in the developing world or students from low income background because most will try to get the best bang for their limited bucks. Maybe it’s possible to unlock it?
That's where tool user, AKA "The Developer" experiences the performance. If the autocomplete comes up fast, you are a happy developer, if your scripts finish running instantly on every save, you are a happy developer. If you click and it runs, you are a happy developer. If you think about it, Docker itself is about that comfort of not having to deal with the tool setup every time. On Apple dev technology that's the default without Docker. Search for Xcode on AppStore, click download, click open once it's downloaded, write your Swift code that can do UI and backend , click run and it runs. Sometimes autocomplete stops working but you just close Xcode and open it again and it works :)
There's nothing you can't do on 2015 Macbook Air that can be done on a fresh high end Macbook Pro. The difference comes from the comfort of being snappy and people pay multiple times more for that snappiness.
Isn't the yearly $199 developers fee a greater gatekeeper by design for people with a low income from participating in Apples ecosystem?
AppStore Developer subscription is not a social security program, you will need some capital to run business on it.
It is like the need to spent money to buy the flour and the chocolate before making money from your first donuts. Standart business stuff.
I don't know what you mean about a social security system, I don't think anyone is talking about that so it's a bit nonsense.
The point is it is a gatekeeper. Your first app that you build doesn't make $115? Then you didn't break even and you are down, and are taxed another $100. Considering that Apple then billing you 15% on your takings, it is another bar to clear.
If you don't like the business proposition, just don't do business with Apple. Go make apps for Google Play store or Huawei or anything else.
And by the looks of it, when I finally get to do some project with it, the language specific runtime tools like Project Tye for .NET would already have replaced it.
This is actually going to make it easier for me, as more ARM base images will get created.
- Rosetta 2 will not be involved at all
- They will recompile the CLI, daemon and other parts of Docker Desktop natively for arm64 (but this has a dependency on the Go toolchain)
- There will likely be a bunch of bugs or general inconsistencies in the new Mac Hypervisor (their dev hardware didn't even support virtualization), so it's unlikely that Docker's Hyperkit will just work out of the box on M1
- The above will take till mid-2021 at the earliest, but should hopefully release along with more "pro" Mac hardware
- Once it is ready, you should be able to cross-compile and run x86_64 containers on new Macs, considering Docker Desktop will still automatically use QEMU to do the emulation. I expect running native arm64 containers will still be better though.
TL;DR - don't buy the current lineup of Apple Silicon machines just yet for serious Docker work.
Disclaimer: These are all just guesses
I want x64 docker on Arm , as this could also be massive for server power consumption. But things take time . If your some wiz kid who can crack this puzzle you’ll have a billion dollar startup within 6 months
As someone who’s published on the App Store , having a single binary run on IPhone , IPad and Mac is a much much bigger deal than most of you realize .
That way you don't have "works on my machine" problems, because both prod and dev are clean virtualized identical systems (containers)
Docker was snapshots of developer machines you can run in production. They never promised that it would run everywhere.
I would have thought that anything of lasting interest would be available in source code and thus ported to run natively on ARM...
An EC2 rival could run the same processes using 30% of the power. Plus as ARM tends to run on much smaller devices, you could theoretically save tons of physical space with data centers.
I feel like it was implied that Apple was doing the hard work here, but now it looks more like nobody was doing the work, and showing it off working was a hat trick?
Makes you wonder what else was "simulated" during the demo?
EDIT: change "was" to "could have been".
Docker's blog post says "Docker for Mac (silicon)" dependencies are not working yet. Apple gave the demo 3 months ago.
Will docker running on ARM run docker containers from images built for x86? Will docker running on ARM be able to build images for x86?
EDIT: Just realized that you probably meant for binary compatibility. That also is not Linux-only, but https://qemu.readthedocs.io/en/latest/user/main.html#support... only talks about Linux and BSD, with no mention of Darwin.
There are already attempts in progress: https://news.ycombinator.com/item?id=25064593
https://developer.apple.com/documentation/apple_silicon/abou...
Unless they plan to run an emulator inside the Hypervisor Framework (a seemingly unnecessary effort since you could run the emulator without Hypervisor) this implies x86 containers will not work.
And if you're on x86, you can run ARM containers with QEMU userspace emulation seamlessly after running
docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64
The inverse would be extremely easy as well.If not, then why expect Apple ARM to run x86?
Yes. There are ways to set up Docker to seamlessly run arm containers on x86 using CPU emulation.
Use an Arm image. For docker, it makes little to no difference
Realistically, ARM is probably the future, and just needs something to push society in the direction of the future. A lot of people use Macs, so this forces people to become interested in switching, which has some value. Remember when the original iMac had USB instead of ADB ports? Everyone was mad about it. But USB was the future -- you can plug that iMac's mouse into pretty much any computer you have and it still works.
(I've been wanting an ARM desktop for a while, but it seems there is trouble standardizing something like BIOS/UEFI, and the CPUs you can buy are more expensive and slower than x86 alternatives. I'm also not sure if anyone ever decided what the standard "ARM" configuration looks like... binary calling conventions, endianness, supported instructions? But, if Apple can make a competitive ARM chip, so can others, and the standards will follow. We'll see!)
Where can I buy ARM server comparable with x86 server on performance? I'm not interested with clouds, I want bare metal server. I'm not aware of any server brand like HP or Dell producing ARM servers. I'm also not aware of any CPU manufacturer producing computer desktops with ARM comparable with x86, outside of Apple macs. I'm not convinced that ARM is the future. For me the future is both architectures co-existing.
You can have both.
https://aws.amazon.com/blogs/aws/now-available-bare-metal-ar...
If you're actually interested in buying servers this is not a pedantic difference.
99% of people are running node/python/RoR/PHP on Ubuntu/Debian/Arch. It works the same for most cases. (possible caveat: I'm not sure if numpy and TensorFlow is supported already but it probably is)
But for basic stuff, it's a non-issue
Apple may be the loudest and now the fastest available, but the ARM consumer laptops existed for some time already. For example https://www.lenovo.com/au/en/laptops/ideapad/ideapad-s-serie...
Docker here is saying their "for mac" application dependencies are not even all working yet.
Unless I am missing something - Apple's Docker on silicon demo was fabricated?
Linux containers need a Linux kernel to function.
[1] https://developer.apple.com/documentation/apple_silicon/abou...
sudo apt install qemu-user-static
# or
docker run --rm --privileged aptman/qus -s -- -p # (every reboot)
away and you can. It'll be slow, but it'll work.The "different beast" is just some go wrappers.
Here is a post saying that the latest beta release of Electron supports Apple Silicon: https://www.electronjs.org/blog/apple-silicon
And the GitHub issue tracking Go on AS, which mentions that support is coming in version 1.16 scheduled for release on Feb 1st 2021: https://github.com/golang/go/issues/38485
Electron 11 was released today and supports AS, but it is listed as experimental.
Would love to see an experimental docker for mac soon.
The only time I used docker mac ui is to change some docker machine config. If electron is a blocker then I think they can release the beta version without the ui and their users will hardly notice.
Will I be able to build/run x86 (64bit) docker containers?
Will I be able to build/run ARM containers (and without "switching" something)?
Why couldn’t they just write a quick set of native panels and call it a day? Sigh.
Edit: although sometimes you can through qemu.
It has been since July that you can have developer kits for Apple Silicon. This should not have been a surprise.