13 ms·
Docker Desktop for Mac (Apple Silicon)
- shawnz 6y agoInterestingly, the release version of Parallels for M1 Macs also dropped yesterday.
- MuffinFlavored 6y agoIs there a good way to spin up a Windows virtual machine with Docker on an Apple M1? I feel like the real solution I should be going with is Parallels or qemu. Just wanted to know if there was something I'm missing.
- crooked-v 6y agoThe purpose of Docker is to containerize specific applications, not to run general-purpose virtual machines. There are Windows Server base containers for Docker, but the point of them is to do things like deploy a server (that just happens to be on Windows Server rather than Linux) as a Docker image.
- stu2b50 6y agoI've used the preview release, and my experience with ARM containers has been good - even seems a little more stable than the Intel one. But I only did a x86 Linux container as a test, and it wasn't a great experience. Seemed visibly slower and crashed once. So whether or not this suits your needs, I feel, depends on to what degree you need the "contract" that your local environment is the same as prod, because you're probably using x86 Linux/BSD boxes.
- mikepurvis 6y agoThe other side of that is that this would be an awesome local dev platform for a shop targeting ARM servers.
- stu2b50 6y agoYep. Given that the fastest Windows ARM device is an M1 Macbook Pro running Windows in Parallels, there's currently no competition for local platforms and ARM. If Amazon and Nvidia's ARM server chips really pick up steam, then the M1 Macbooks would be the premiere local device.
- cmeacham98 6y ago> Given that the fastest Windows ARM device is an M1 Macbook Pro running Windows in Parallels I seriously doubt this is true if you include desktop computers in the comparison.
- scoopertrooper 6y agoI'm not aware of any desktop ARM devices that can beat the M1.
- Webox 6y agoI think its an anti pattern if you do it locally different than what you do on production.
- de6u99er 6y agoThat's about the 5th time I am seeing this article posted here.
- imwillofficial 6y agoI’m so stoked by this news. Great work from the Docker Team on this!
- me551ah 6y agoThe whole point of docker was to have reproducible builds. What runs on the dev machine also runs on the server. But M1 macs change that in a major way. There might be bugs or available features in ARM versions of popular software, so what works on a dev machine might not work on the server and vice-versa.
- jiofih 6y agoFor that use case, you should continue to run x86 images. Unless there is a bug in underlying virtualization frameworks, you’re extremely unlikely to ever see that kind of issue.
- shawnz 6y agoWhat if your server is also running an ARM CPU though? For example with AWS Graviton
- geerlingguy 6y agoOr Raspberry Pi? (Only mildly /s).
- shitloadofbooks 6y agoI get what you're saying since it's a different architecture entirely, but it's not as if you run EXACTLY the same hardware as your server (e.g ECC RAM, number of physical processors, things like AVX-512, etc).
- pjmlp 6y agoContainers don't have anything to do with reproducible builds, docker advocates just happened to misuse it for that purpose.
- mojo982 6y agoDo they? Having a stable starting point for the “machine” you’re building on contributes to having reproducible builds does it not?
- chubs 6y agoI tried using docker for x86 builds for Lambda (which doesn't support ARM), and hit this brick wall, unfortunately: https://github.com/docker/for-mac/issues/5123 https://github.com/docker/for-mac/issues/5123 I went and checked the issue when i saw they've made a formal release but it doesn't appear to be resolved. So maybe keep it in mind if anyone has issues trying to use docker now :) Edit: I see Docker has closed the issue and encouraged people to simply use ARM containers instead. Unfortunately that's not an option for cross-compilation when you're using x86 servers. Something for people to keep in mind when deciding what laptop to buy next, i guess.
- ztjio 6y agoThe issue is closed, because, it's not a docker bug, it's a qemu bug. People should engage the qemu project about it.
- lstamour 6y agoI don't know what language you're using on Lambda that requires x86 compilation, but if you search the web for "cross-compiling" you'll find relevant results. For example, here's someone using Graviton ARM to compile Rust for Lambda x86: https://burgers.io/cross-compile-rust-from-arm-to-x86-64 https://burgers.io/cross-compile-rust-from-arm-to-x86-64 You don't actually need to run the same architecture you compile for, you just need a toolchain and environment that matches your target and a compiler for your machine's architecture that knows how to write to your target architecture. It sounds more complicated than it is, really. How you go about doing this might vary by language, but as Docker for M1 takes off, you'll see more and more guides for doing "hard" things like compiling to x86. Also, if you find that you're building Docker images on x86 machines and want to build Docker images for Arm as well, have a look at https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images https://docs.docker.com/buildx/working-with-buildx/#build-mu... for example.
- chubs 6y agoThanks for the pointer! I tried cross compiling without docker and hit that exact same problem with the Ring dependency. This blog post seems to have a potential solution, i'll give it a try. I do recall trying a million things however.
- Laremere 6y agoI wonder if the Apple Silicon decision is going to have a large impact on what CPUs are used in the datacenter? I (and I suspect many others) would just default to x86_64, because that's what I develop on and compile to. I suspect many developers on Apple computers will start to look at the differences and choose whatever meets their requirements while minimizing costs. Should this trend continue, this could even have effects on the whole x86_64 ecosystem, as the datacenter CPU market has a large effect on the high end consumer CPU market.
- est31 6y agoThat's what Linus Torvalds said too: ARM won't have a chance in the datacenter until it gets onto desktop computers of developers first. https://www.realworldtech.com/forum/?threadid=183440&curpostid=183486 https://www.realworldtech.com/forum/?threadid=183440&curpost... That moment is now here. Sure, it's only a subset of the market, but Mac devices are a significant percentage of developer computers (28%), way higher than in the general population (17%). https://insights.stackoverflow.com/survey/2020#technology-developers-primary-operating-systems https://insights.stackoverflow.com/survey/2020#technology-de... https://en.wikipedia.org/wiki/Usage_share_of_operating_systems https://en.wikipedia.org/wiki/Usage_share_of_operating_syste...
- hk1337 6y agoThat seems true, AWS already had graviton processors but it’s availability seemed to get quite a boost after Apple Silicon.
- pjmlp 6y agoI did not have a 88000, SPARC, PA-RISC, RS/6000 desktop to develop on UNIX. Likewise, with the return of timesharing, anyone can log into their assigned server slot and work just like I was doing 30 years ago.
- em500 6y ago> I did not have a 88000, SPARC, PA-RISC, RS/6000 desktop to develop on UNIX. That may have contributed to their demise.
- deleted 6y ago[deleted]
- sneak 6y agoReminder: unlike the docker command line tool, and the dockerd server container management tool, the Docker Desktop products are a) not free software, b) not even source available, and c) send a lot of sensitive data about your system back to Docker Inc without consent. I didn’t realize this for a while myself, as the docker CLI tools are all free software. The “Desktop” variants are not, and embed spyware.
- shawnz 6y agoThank you for highlighting this issue, I certainly think it is something which users should at least be aware of and they don't really do a good job in explaining the distinction.
- rvz 6y agois there an alternative to the "Desktop" for Docker we should be using?
- stefandesu 6y agoMaybe a Linux VM as the Docker host?
- mdaniel 6y agoDepends on how much of a replacement one is expecting (I guess it's like all commercial versus Open Source software in that way), but docker machine and VirtualBox are a low drama version. There used to be a working setup that used xhyve (on top of Hypervisor.framework) but I had woes that I don't recall the details about right now and even when it did work the networking was much harder to reason about than with VirtualBox The other advantage of docker machine is that you can also ask for a cloud instance to run dockerd, and that's actually how gitlab-runner does it Replacing Docker for Mac's kubernetes support is done with either kind or minikube depending on ones desire to have on a modern version versus "yeah, yeah, just run the VM and make kubectl work" None of those setups have any provided gui/menubar widget support, or similar hand holding, which is why I started this the way I did
- thinkharderdev 6y ago
- biztos 6y agoDoesn’t this imply that we could have Docker for iOS? I don’t think Apple would allow it, but it seems like an interesting antitrust wedge if they blocked it.
- thethimble 6y agoI don’t think MacOS and iOS are similar enough for this to be an obvious jump. I think the iOS kernel is also prohibitively locked down to do anything like custom virtualization.
- toabi 6y agohttps://twitter.com/ktemkin/status/1382913602940674050 https://twitter.com/ktemkin/status/1382913602940674050
- thethimble 6y agoAmazing! I'm very surprised and stand corrected!
- ajconway 6y agoIt should be noted that this doesn't use any hardware-assisted virtualization acceleration.
- saagarjha 6y agoIt's not even using a JIT.
- tinus_hn 6y agoWhat would you want to use that for?
- lostlogin 6y agoFor me - the various things I use Docker for now. Firing up containers for ESPHome and related projects. Testing things out is great and doing it more readily sounds neat. It can be done is a fairly simple fashion via a gui (eg the Synology implementation). I’ve just finished messing about with that Grafana speed test project that was featured here last week, and doing it on an iOS could be good.
- HerbsMan 6y agoGiveen the amount of issues with X86 images... might be better option to use remote docker host instead.
- j0ej0ej0e 6y agoAny stats on performance?
- n42 6y agoI am disappointed that this still requires Rosetta to install, negating the point of targeting Apple Silicon for my usecase. I recently had to wipe my machine to remove Rosetta (there's no "uninstall"), and saw quite a significant boost in performance across the board.
- stefandesu 6y agoYou mean simply having Rosetta installed on your machine noticeably slows down everything else, even if you're not using an app under Rosetta? This sounds like a bug.
- brailsafe 6y agoAnyone have suggestions for good tutorials or courses on getting up to speed with Docker? I've procrastinated on learning, in part because the mac app wasn't ready when I initially looked at it years ago.
- FearlessNebula 6y agoEngineer Man on YouTube has a good Docker and Docker-Compose video.