-
Notifications
You must be signed in to change notification settings - Fork 260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Docker Desktop on Apple Silicon #142
Comments
Work on |
Progress on getting Docker Desktop running on Apple Silicon (M1). Lots (lots!) of duct-tape still, but this screenshot should make many people happy: (I can't take any credits for this, so give Dave's tweet a like ❤️ https://twitter.com/mugofsoup/status/1332382741892124675?s=20) |
@thaJeztah is there a download of that version to download and test? |
@rene-mueller no, much too early for that. This is a local build on a developer's machine. Still needs lots of hand-holding to run it, and we have a very limited number of machines to work with (remote-desktop across continents), waiting for more machines to arrive (also for our release and CI pipelines). We definitely want to get test builds out as soon as possible, when they're more usable, but that will still take some time. |
@thaJeztah what a pity, is there any way to help you and speed up the process? |
Not at this moment. Team is working on the low-level stuff to get all components running. Debugging some crashes (which could be bugs in Golang (or the way it's used in our code), and bugs in macOS). |
@thaJeztah It certainly looks like you and the team are making good progress. Would it be possible for you to give us a realistic ETA on getting an alpha or beta that runs on the M1 in our hands? I will not hold you to it but it would help with planning. Thanks so much! |
@EDemerzel Not part of the team so I couldn't tell you, but I find your question/demand really super inappropriate. It's done when it's done. If you want to plan (for what?), assume early June and be happily surprised if it's finished early. Otherwise lay off on the pressure and be grateful that you will receive the fruits of their labor for free - whenever that might be. I don't think it's ok to add pressure by asking "when is it done?" |
@infostreams Relax, okay? He asked politely and just wanted to know where things are at. He didn't pressure anyone, it was just a question to get a better understanding of what's currently going on. And, believe it or not, some people actually do need to do some planning, especially in an enterprise world. This isn't all fun and games, some people need to work, and some people need docker for this. And yes, docker is free, and he or anyone else using it for free can't demand anything to be done, but it's another thing to just ask a simple question. |
@KarimGeiger No. He is putting pressure and he is making demands, however politely phrased, and no - that's not ok. I will stop replying to this thread now, but this needed to be said. I don't mind being the scapegoat for that. |
Just for the record I wasn't attempting to place pressure or demands. I wasn't even asking about a RC or a Release. On most of my machines I run "edge" and enjoy testing and giving feedback when I can. I'm someone that is excited about the M1 and helping products move from Intel to Apple Silicon. Also, while I do not personally pay for Docker services the people I work for do so I'm not a freeloader. Lastly, I do apologize if my question rubbed you the wrong way. |
Please guys, this is an issue related to a bug in the software. Please refrain from leaving a comment unless it contributes to the conversation at hand. |
Assuming we have Docker Desktop for Apple Silicon Macs, how much of a performance hit we’re talking about when running x86 images through Docker QEMU? |
At this moment, any estimation would be only "guessing" and very likely to be completely off. The honest answer is "we don't know, until we reached that point". To illustrate that; while we did have parts of Desktop running before, the screenshot was posted just minutes after an engineer was able to spin up Desktop (including the UI). There's still many parts that are currently running with duct-tape solutions (e.g. networking with hard-coded IP addresses etc). These builds are also built with unreleased versions of (build-time) dependencies, such as Golang (and I think with some temporary patches on top of that); while that works to get a test-build, that's not something we can use for an actual (regular) release. This is pretty much "uncharted territory", and given that Docker tends to use parts of operating systems (including macOS) and kernels in very specific ways that other software may not be using, we may be (and often do) running into bugs in macOS that would need to be fixed before we're able to do a somewhat stable release.
@infostreams @KarimGeiger thank you for stepping in; no worries: we're good at "reading between the lines", and I assume @EDemerzel's question was all in good faith. We are all super-excited to see things progress (I for sure am eyeing the new M1 machines to give them a spin), and with engineers in both San Francisco and Europe working on this, we're literally working around the clock to get things working, and try to make that a reality.
(Personal opinion); while it's definitely good to start testing with these machines in (enterprise) environments, I would not make a major switch to an entirely new hardware for business-critical situations on "day 1". These machines are the first generation of the Apple Silicon platform; while they should be good for may use-cases, there might still be things that need to be addressed. I very much expect that Apple started with the "lower range" models for this reason: allowing them (and users) to "test the waters" before proceeding with the higher-spec models.
I'm not sure if we have good benchmarks yet. That said; these machines are FAST, and even with some overhead, performance may be comparable with native intel. Again; we don't have benchmarks yet (but we'll keep you posted once we have). With all of the above said, I should add some big warnings
|
@thaJeztah This is wonderful information and certainly more than I had ever hoped! I really appreciate you taking the time to interact with the community like you do. |
Thanks for giving us these informations. I'm part of thoses which received a M1 while having ordered an Intel one in early November, prior M1 unveiling. I hope all bugs will soon be fixed by cupertino. |
You ordered a new Intel based Mac in November and instead received an ARM one??? |
Yes: https://finestructure.co/blog/2020/11/27/running-docker-on-apple-silicon-m1 |
Yes, we (the company I work for) ordered a MBP 13" in November 4th, and the day after M1 reveal the ordered model was switched from Intel to M1. @finestructure Thanks, I was reading it when your message came up, nice work. 😉 I'll get a VM from Scaleway to host my developments during the meantime of the M1-compatibility development. |
Love you all for working so hard on this. Thank you! |
Amazing work being done here! 👏🏻 👏🏻 👏🏻 |
Yet another comment to notify every subscriber. Thank you! |
It might be a good idea to lock this discussion and allow only comments from the team. Otherwise, the topic's subscription does not make any sense. /cc @nebuk89 |
Thanks for the update! As the preview builds don't auto-update, can we rely on comments here when new releases are available?
The biggest problem I've had with preview 7 was the disk performance was poor, especially for MariaDB, which caused tests for my codebase to take three times as long as with a non-ARM64 Mac. With preview 7, I resorted to storing the database files on a tmpfs volume which helped massively. I hoped this update would help with this, but I do not see any noticeable difference with version 3.1.0 (60984). To quantify this better, I tried to run some benchmarking with
The bind mount testing was done using gRPC FUSE. I tried with osxfs, which showed roughly double the throughput for the ib_log_sync_write test, while the other tests failed with osxfs. I also tried to use the Running the tests directly in macOS and on a tmpfs volume were both much, much quicker but I left them out since it's not too relevant here. I was surprised to see the bind mount's performance being so much better than the other options, as I expected that to be slowest. Do you have any indication for where the bottleneck would be for disk IO? It would be interesting to try and run similar tests inside the VM that Docker daemon is running on to see if the problem is with Hypervisor.framework or higher up the stack. |
@Tenzer I do agree with you, in fact, its much faster but i think that was also expected but since Hypervisor framework got some adjustments for ARM now it will probably slow docker team due to the fact they have to support also this new arch |
We have seen some situations in which disk performance is worse on the virtualization framework than on the old hypervisor framework, and we are talking to Apple about it. |
@StefanScherer That is perfectly normal to happen, they are probably still adapting the kit to most of the apps that were relying on intel based. Is there anything new from Apple regarding hypervisor or it's still under prep talk? |
Nothing concrete yet. |
@Tenzer I had the same issue. My container response felt so slow on my M1. |
can you try to start bitnami/apache on apple silicon?
I become this error on startup.
|
Hi @jan-runkel-zeitgleich , |
Is this the correct way to start a x86 image on Apple Silicon?
or this?
Or is there another Way to start this image? |
try with EDIT: I mean this:
|
thanks for the fast response. I think I forgot something
I install today the Docker Apple Silicon preview 7
Is there another Step required to use the x86 emulation? |
@jan-runkel-zeitgleich @DavidGarciaCat please don't use this ticket to report bugs or support questions; use https://github.com/docker/for-mac/issues for that (or the "dev-preview-program" slack channel if you're on that list) |
You're right. |
The When you specify As a workaround you can try pulling it without We will continue looking to improve the emulation, and are also in talk with 🍏, but it will remain a "best effort", and mostly to help the transition to ARM becoming more mainstream (both on hosting platforms, and in images). Because of the above, the recommendation is to run images that match the architecture. I see you opened https://github.com/bitnami/bitnami-docker-apache/issues/104, which is probably best for that |
Hello, Just aiming to report a potential bug: When I download and install the Docker Preview on my M1, it seems to run. If I open the Docker Desktop Preferences window and set Docker not to start when booting up my laptop, then I am unable to use it again, and I need to remove it and install it again. The error message I get is that my M1 is not compatible to use Intel software, even when I already used it and Rosetta is installed. Maybe this is something to be reviewed and addressed in an upcoming update? Cheers, |
It does seem that if I shut down Docker Desktop, it won't start again unless I reboot. |
I frequently see the same issue, especially after wake from sleep. Going into Activity Monitor and quitting the |
As this is now shipped 🎉 https://www.docker.com/blog/released-docker-desktop-for-mac-apple-silicon/ |
@nebuk89 Congratulations on the release! Is there any place where we can track the status of getting rid of the Rosetta dependency? I searched the issue tracker where you linked but couldn't find anything. I've also only ever seen references to "some upstream binaries" that are still x86, but never been able to find any more information on which upstream binaries, or if anyone is actively working on it... Thanks! |
@LinusU I don't think we have a public ticket to track, but it's definitely on our list of internal tracked items. |
@StefanScherer thanks for the quick reply, I'll keep watching the release notes then 👍
(my Docker crashes on startup because of missing Rosetta, so I can't run the updater 😄) b.t.w. the "Known issues" section doesn't mention that it requires Rosetta anymore (I think it did during the technical preview), which initially led me to believe that the non-preview release didn't require it anymore. I managed to install it, but then Docker crashes on startup. No big deal though, since I guess that I will just be able to download and run the latest installer as soon as the dependency on Rosetta is dropped 🚀 |
@LinusU https://docs.docker.com/docker-for-mac/apple-silicon/ it is listed as a system requirement in the installation docs. |
Tell us about your request
Provide support for Docker Desktop for Apple computers running on Apple custom silicon.
Which service(s) is this request for?
Docker Desktop for Mac
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
Mac will be moving to a new CPU architecture where Docker Desktop will no longer run, this ticket is to release Docker Desktop on the new architecture
Are you currently working around the issue?
Using a self hosted VMs on new Macs to run Docker
Additional context
https://www.apple.com/uk/newsroom/2020/06/apple-announces-mac-transition-to-apple-silicon/
The text was updated successfully, but these errors were encountered: