10 ms·
Tech Preview of Docker Desktop for M1
- munro 6y agoDoes this mean I can run containers natively on Mac? And I don't need a VirtualBox VM running on my Mac to launch containers? This would be huge for me, and is always a big in my mind why I would consider switching back to Linux. Edit: Docker on Mac has never felt as snappy as on Linux, because of the VM, though I have no hard numbers. Networking is a PITA, but it's not hard to figure out. The other main thing I hate is I have to give up a bunch of RAM to the VM that my containers may or may not use, instead of sharing with the host like on Linux.
- jcollins 6y agoDocker Desktop already ran on Macs. This is specifically for the new Apple Silicon support (M1). It's not native, technically, but it feels native the way Docker Desktop works. Basically they manage the VM for you, so you don't have too.
- dalacv 6y agoCan this run a container of windows on Mac M1?
- thefourthchime 6y agoYou can run Windows For ARM on M1 Macs right now, I doubt you can get docker to do this without lots of manual effort.
- gigatexal 6y agoGot a link to proof of this?
- deleted 6y ago[deleted]
- my123 6y agohttps://www.mail-archive.com/qemu-devel@nongnu.org/msg766282.html https://www.mail-archive.com/qemu-devel@nongnu.org/msg766282... for the Qemu patches and https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewARM64 https://www.microsoft.com/en-us/software-download/windowsins... for downloading the Windows build
- dalacv 6y agoQuestion, is there persistence with that? Or are changes lost once it is closed?
- BillinghamJ 6y agoI've been using the ACVM app with. Windows 10 VMDK file. Changes are indeed persisted to the VMDK
- my123 6y agoNo nested virtualisation present currently, as such no virtualization support provided to VMs, so on Windows on an M1 only WSL1 works. Docker Linux containers on Windows require WSL2 instead. Docker Windows containers aren't available on arm64 Windows yet, but stay tuned...
- jsjohnst 6y agoCan you run a container of Windows on an x86 machine? The answer is no, and for the same reason it won’t work on ARM. A “container” is not a virtual machine, you can only run the same Linux executables you would on a normal Linux system. That said, as another person commented, you can run Windows for ARM in a VM on an Apple M1.
- diveanon 6y agoIt doesnt feel native at all, performance and networking are very suboptimal. Haven't tested it on M1 yet, but I doubt the networking challenges will disappear.
- jcollins 6y agoThere is overhead for sure but if you use x86 containers on an Intel Mac or arm64 containers on an Apple Silicon mac, it's pretty performant.
- diveanon 6y agoCan you share any details on M1 perf and resource consumption? Docker vm on mac is noticeably slower and consumes a lot of resources in my experience.
- jcollins 6y agoThe only thing I can say with confidence is that if you're using ARM containers it is really fast, probably thanks to the Apple Silicon. I imagine memory consumption is on par with running on Intel. I don't think Docker Desktop can really change that.
- diveanon 6y agoHonestly memory is the primary constraint for most of my mac devs running our docker envs.
- jontro 6y agoUnder the hood there is a linux vm running.
- munro 6y agoDang, wishful thinking that they were going native on M1. ;_;
- diveanon 6y agoToo bad, if they had it running natively I would actively consider switching back to mac. Glad to see they are making progress on the M1 port though, my team will be excited.
- gigatexal 6y agoYou wanted Apple to add container support to the OSX kernel? Hah. I wonder if the virtualization API that Apple is pushing performs better than Hyperkit.
- stephenr 6y ago> HyperKit currently only supports macOS using the Hypervisor.framework. Do people really not know how shit works these days?
- shimylining 6y agoIm confused by this comment? I am running Docker Desktop on Mac and have multiple containers running?
- diveanon 6y agoIt is running in a vm
- paxys 6y agoDocker has never needed a VirtualBox VM to launch containers on your Mac. It does its own virtualization internally, and will continue to do so.
- Wowfunhappy 6y agoIt actually did at one point; before Docket Desktop there was “Docker Toolbox”, which required separate virtualization software. The installer came with Virtualbox by default, but there were options to use Parallels and VMWare as well. This is probably what GP is thinking of. I'm actually using a version of this setup today in order to run Docker on OS X 10.9.
- outworlder 6y ago> Docker on Mac has never felt as snappy as on Linux It's extremely slow compared to Linux and I'm pointing my fingers at the virtualization layer without any hard evidence because it's the most likely suspect. With all this focus on sandboxing apps of late, I'm wondering how far the OSX kernel is from having a feature set that resembles cgroups and network namespaces.
- my123 6y agoThey have containers already in a sense, whatever the iOS Simulator.app uses is not VMs, and it's a container in more ways than just one.
- astrange 6y agoIt's a launchd namespace. It's not meant to be secure in the same way a container would be, but it could be used for something.
- BillinghamJ 6y agoThat is not exactly designed to deliver any kind of isolation though - it just runs normal processes
- ploxiln 6y agoI used docker inside a vagrant+virtualbox VM running ubuntu, on macOS, for a few years. It's more reliable, and more debuggable, than docker for mac. It's some easy-auto-transparent storage and networking layers that make docker-for-mac so flaky.
- GGfpc 6y agoSo you have your setup documented anywhere?
- thefourthchime 6y agoEh, you need to apply to the Developer Preview Program. Here https://www.docker.com/community/get-involved/developer-preview https://www.docker.com/community/get-involved/developer-prev...
- jcollins 6y agoYou don't, see the download link at the bottom of the page.
- my123 6y agoNope, look at Here is the Download on the page. Click on the download word and it'll fetch it for you, no login required.
- simlevesque 6y agoDownload: https://desktop.docker.com/mac/m1preview/Docker-AppleSilicon-Preview7.dmg https://desktop.docker.com/mac/m1preview/Docker-AppleSilicon...
- diveanon 6y agoHappy to hear they are making progress, but I would caution people on being an early adopter. It's a tech preview only and don't screw yourself by thinking you will be able to just jump into your usual workflow without issues. Good luck docker!
- paxys 6y agoOn the other hand, kinks will be ironed out only with the help of early adopters willing to take the leap and try doing "real" work.
- diveanon 6y agoMore power to them, unfortunately I don't get paid to QA docker :/
- flemhans 6y agoDo you only do what you are paid to? That being said, I'll also hold off a little while getting an Apple Silicon device, until various kinks are worked out. And until I can get a 16" MacBook Pro.
- diveanon 6y agoI only work when I'm paid to work, and debugging containers and digging through stack traces sounds like work to me. I totally get that some people like that kind of thing and have the time for it. I dont.
- jeppesen-io 6y agoWow, that was fast. I was expecting to wait unil January. Key takeaway for me is the ability to run/build both x86 and Arm images on a M1. Can't see any reason M1s can't be used for everyone at my work now. Very nice.
- ogre_codes 6y agoIt won't be more than a tech preview until after Go is stable on the M1 which is likely to be January/ February. Once that happens, it should be pretty quick.
- yjftsjthsd-h 6y agoIf you can run x86 programs, just use that for Go?
- ogre_codes 6y agoThis certainly works for Home-brew apps. I think Docker is a bit of a different cookie though. Talking to a VM over the Virtualization Framework likely requires being a little more native.
- tonyhb 6y agoDocker have had inside access to the whole M1 release since before it was announced. This is incredibly slow.
- geerlingguy 6y agoAdobe and Microsoft took months/years after Apple's PowerPC and Intel transitions... complex software is complex, it's not like they get the new machines, flip a few toggles, and hit compile.
- joshstrange 6y agoSource? The developer machines Apple shipped out didn't have virtualization support so they couldn't start on that until after the M1 and I haven't seen anything that says Docker got M1's early.
- paxys 6y agoThe real question is whether it can run ARM containers "natively" (inside the VM) or still needs to emulate them via QEMU.
- jbirer 6y agoAbsolute disaster, this platform. The opacity and lack of early availability for development made for a really ugly adoption experience. I feel that people should not encourage this and vote with their money in the DevOps / Dev sector to discourage other companies from pulling the same stunt.
- arvindamirtaa 6y agoLack of early availability? They sold $500 dev units specifically for this purpose.
- jbirer 6y agoThey were not available for purchase by everyone.
- ogre_codes 6y agoOther than being unavailable outside the US, I'm pretty sure everyone who ordered one received it. Apple also donated at least a few of them to OSS projects.
- angulardragon03 6y agoThey were available outside of the US, too.
- scoopdewoop 6y agoIf they were available for purchase to non-developers, how would that be early availability? That would just be a release.
- jbirer 6y agoIf they were available to every developer, Docker would not have been this late.
- ogre_codes 6y agoThis bit about Multi-platform development is most interesting to me. > Many developers are going to experience multi-platform development for the first time with the M1 Macs. This is one of the key areas where Docker shines. Docker has had support for multi-platform images for a long time, meaning that you can build and run both x86 and ARM images on Desktop today. If multi platform images work, a lot of the concerns people have about x86 versus ARM should go away. Of course, once you can do everything on ARM as well as you can on x86. Perhaps changing more of your infrastructure to ARM might make more sense.
- MangoCoffee 6y ago>Of course, once you can do everything on ARM as well as you can on x86. i have high hope for AMD/TSMC to push x86. Intel seem to be...stuck for now.
- cogman10 6y agoI mean, if the apple approach really works well then I could see AMD or even Intel following suit in the future. If the industry starts to shift and push towards ARM due to cost, AMD and Intel would be fools to just leave that on the table.
- ogre_codes 6y agoIntel's fat margins are largely based on their duopoly on x86. With ARM, it's far more competitive and margins are far lower. With Nvidia owning ARM, it seems likely we'll see more ARM CPUs from them. Samsung, Qualcomm, and Mediatech also have ARM CPUs all the way down to a few dollars per CPU. Intel isn't going to be able to come in and charge $50-500+ unit the way they do with their x86 chips. Unless Intel can reboot Moore's Law on Intel, they are going to get hit hard over the next few years. Even if Intel makes the move to ARM, their profitability will take a huge hit from the ARM migration.
- cogman10 6y agoI don't disagree. In fact, I'm assuming that's a major reason they've not done this sooner. Intel tried to setup a different more efficient architecture with IA64, but they failed there. That being said, with major players like Amazon and Google tinkering with ARM in the cloud and Apple getting ARM into the hands of a lot of developers, we could be on the eve of seeing ARM make a big entrance into the server realm. IMO, a big reason ARM hasn't taken off there in the first place is because most devs aren't using ARM machines for development.
- mulcahey 6y agoPerhaps a dumb question but I'm curious why people don't use a VPS or a cloud linux machine more for Docker/K8s development instead of running Docker locally on a Mac. In my experience Docker Desktop has been such a resource hog, and Apple's hypervisor implementation pretty poor. I much prefer to have all that heavy lifting isolated away from my development machine to keep it responsive and cool.
- bamboleo 6y agoProbably because it’s not very convenient or easy to setup. I have a 2013 i7 MacBook Pro and I don’t have that much trouble running Docker with 16GB of RAM.
- Tuna-Fish 6y agoIf I'm writing code on a shitty laptop keyboard instead of a proper mechanical one, it's because I am, or intend to often be, outside an office, quite possibly travelling. This also usually means that I will not have a reliable internet connection.
- itake 6y agocost? if im dropping $3k on a machine, I don't really wanna pay another $2k in cloud fees to do the dev work. you might say, "well get a cheaper computer!" but I find that cheaper computers have worse screens, battery life, and overall quality.
- swagonomixxx 6y agoI don't want to be _too_ pedantic but the M1 macbooks are significantly cheaper than their Intel counterparts. The 13 inch one is around $1300 USD. But I do agree with you. Cheaper laptops means a worse experience with almost everything.
- jsjohnst 6y ago> I don't want to be _too_ pedantic but the M1 macbooks are significantly cheaper than their Intel counterparts. The M1 MBP is about 15% cheaper, which I guess might be significant to some, but isn’t a huge selling point to me like you’re making it out to be. GP was talking about a 15/16” MBP at $3k, not the 13”.
- gmaster1440 6y agoI've tried one of the preview builds as part of their Developer Preview Program[1] and it's super fast when you're running an arm64 image, as opposed to an amd64 that will automatically be run via qemu (and therefore incur some overhead). By "super fast", I mean I was seeing speeds comparable to running the commands natively on the M1 mac (npm install and a heavy Gulp build). [1] - https://www.docker.com/community/get-involved/developer-preview https://www.docker.com/community/get-involved/developer-prev...
- Axsuul 6y agoHow close are we to be able to deploy arm64 images to production/AWS/GCP?
- justincormack 6y agoYou can deploy to AWS Graviton machines.
- Jonnax 6y agoYou can have done this for about 2 years.
- dividedbyzero 6y agoSeems like GCP isn't offering this currently. It's available on AWS EC2: https://aws.amazon.com/ec2/graviton/ https://aws.amazon.com/ec2/graviton/
- vocram 6y agoAre users able to check if they are running a native arm64 container image, as opposed to an amd64 emulated one? Or that’s something you have to infer from the execution speed?
- gmaster1440 6y agoYou can use manifest inspect[1] to see all supported architectures, and you should also be able to see on Docker Hub[2] as well. EDIT: If you're asking specifically if you can tell what architecture a running container is using, a simple `docker inspect CONTAINER_ID` should show it. [1] https://docs.docker.com/engine/reference/commandline/manifest_inspect/ https://docs.docker.com/engine/reference/commandline/manifes... [2] https://hub.docker.com/_/node https://hub.docker.com/_/node
- sjs382 6y agoI've been using Preview 5 for about a week now and it's worked well for me in my admittedly limited use (devilbox). The Docker team is so awesome for getting this out so quickly.
- diveanon 6y agoAgreed, I was expecting it to take a lot longer.
- birdyrooster 6y agoApple probably uses this technology a lot for themselves and has given support to Docker to implement this quickly.
- YetAnotherNick 6y ago> has given support to Docker to implement this quickly Any proof? As far as I know apple, they are not that developer/open source supportive.
- birdyrooster 6y agoNope just a guess, wonder if anyone can confirm from Docker
- geerlingguy 6y agoI can't find a link but I'm pretty sure a few of the devs have mentioned working closely with Apple on a couple showstopper bugs they had run into.
- fomine3 6y agoIt seems that Apple's contribution for OSS is weak even though they used. I heard that Apple is Java shop, but they don't contribute to ship JVM for Apple Silicon.
- vmception 6y agoNow come on Windows! Give me a solution for that (although I rarely use it) and I’m sold or maybe I moved the goal post to requiring more than 16gb RAM again but come on everyone you can do it! edit: guys I'm talking about running Windows on a VM on a M1 macbook. Just going down the checkbox of virtualization options. Docker is one checkbox. Now want Windows and Vmware/VirtualBox/Parallels
- gmaster1440 6y agoThe WSL 2 version of Docker is a very fast and solid experience for Windows users.
- symlinkk 6y agoIsn’t WSL2 just a VM? No more special kernel subsystem trickery? In that case it should be almost exactly the same as the macOS version of Docker.
- cpuguy83 6y agoExcept hyper-v is a very mature hypervisor, and supports thing like dynamic memory allocation for VM's.
- pjmlp 6y agoYes, but Hyper-V is a type 1 hypervisor, WSL runs alongside Windows, not on top of it. Plus Windows also has containers, Docker is only using WSL for Linux images, Windows containers are used for Windows images. And on Windows Server the containers can run directly on top of Hyper-V as well.
- johnnycerberus 6y agoWe had painful experiences with Windows containers, from being incapable to run CUDA through it to solutions that are not battle-tested and an ecosystem that is not as matured as the Linux one.
- 6y ago
- rossmohax 6y agoIt's their chance to start charging for the product everyone wants.
- mbreese 6y agoAfter reading the article, I still don't quite understand how this works. I've used multi-platform Docker containers before, and that makes sense to me. What I don't understand is how they are running x86 containers on an ARM64 VM? Docker Desktop still works by building a Linux VM and running Docker there. But the VM would be an ARM VM. So, are they running qemu in the ARM VM to emulate an x86 processor in a nested VM? I had imagined they'd try to do something like run x86 qemu through Rosetta, but it seems like this is not that. And the Apple Hypervisor Framework documentation leaves a bit to be desired, so I'm not sure if you can switch vCPU architecture, but I highly doubt it. (And I thought it was established that Rosetta wasn't emulating VM instructions). Can anyone shine any light on this aspect?
- wmf 6y agoQEMU can (slowly) emulate any architecture on any other architecture. In this case, they're using QEMU to emulate x86-64 on ARM64. No nesting or Rosetta is needed.
- orf 6y agoWhy wouldn’t they use Rosetta though? I’d wager the performance of Rosetta would be better than QEMU emulation, but perhaps it’s more optimised for desktop apps
- ytch 6y agoRosetta 2 doesn't support x86 hypervisor: https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment https://developer.apple.com/documentation/apple_silicon/abou... > What Can't Be Translated?: Virtual Machine apps that virtualize x86_64 computer platforms
- wmf 6y agoRosetta is limited to running Darwin/x86-64 user processes on Darwin/ARM64 but Docker needs to run Linux/x86-64 containers/processes on a Linux/x86-64 kernel on a Darwin/ARM64 host.
- xyst 6y agoAs much as the m1 processors are praised, I won't upgrade from my intel mac until apple fixes their OS (by default the m1 Macs will have Big Sur). There's still no word on whether or not apple applications still have exceptions from being filtered by the new network apis. I usually upgrade after the second or third minor patch, but im going to be holding out.
- angrygoat 6y agoThe battery impact of having Docker running with a few containers seems greatly decreased on Apple Silicon. I used to be reluctant on my Intel MBP to use Docker if I was out and about - working in a cafe between meetings for example - because my battery life would shrink immensely. That doesn't seem to apply in the same way on m1 (running ARM64 containers) which is a huge win.
- sneak 6y agoI would strongly advise anyone considering running this closed-source, proprietary software on their machine to examine the large amounts of private data it uploads to Docker Inc when it crashes before they install or run it. I was surprised. You might be surprised, too. I was so surprised that I decided to only ever run the open source command line docker client on my machine, and to avoid any proprietary software that comes out of Docker Inc in the future. It is absolutely not reasonable for them to upload some of the data that they do, and I no longer trust their judgement about what happens on my machine. If they did that sort of stuff in the open source cli app, it would be patched out in minutes.
- m1gu3l 6y agoGod can’t anyone do their job without slurping massive amounts of data behind shady processes. Docker folks , care to explain this?
- SulfurHexaFluri 6y agoDocker is on the verge of death. They are now relying on dark patterns to scrape in some extra profit. Just use podman and move on.