News for hackers. Stuff that matters.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by lucideer on Friday November 27, 2020 @12:11PM (#25230450)
What a bizarre suggestion in this context.

I get that remote development is a thing some people prefer, and if you have an underpowered machine it can be great to just use it as a thin-client and get all the power and performance you need without running down your battery or spending a fortune on local hardware.

BUT... you're recommending this as a workaround for limitations in expensive "Pro" local development machines, as part of an encouragement to go ahead and buy them.

Why not follow your advice and buy an old refurbed Macbook. Or any 2nd-hand machine of any brand. Or a low-end Chromebook.

To clarify: I'm not saying remote dev is bad, or you shouldn't recommend it. It's just really really weird to do so in this specific context.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by herpderperator on Friday November 27, 2020 @03:48PM (#25232451)
It's bizzare to want to run Docker on a Mac anyway. Docker has never and will never run on a Mac natively. The way it works on Intel-based Macs is through the xhyve/hyperkit hypervisor, i.e. it virtualises Linux. That's the only way it can work. It's also why you can limit how many CPU cores and RAM Docker can use, since you're just giving the underlying virtual machine those limits through the Docker settings app. And it's just a memory hog. It will eat RAM up to the amount you specify rather than dynamically allocating and deallocating as per the requirements of each running container like on Linux.

It shocks me that so many people want to run Docker on a platform it was never built for. The suggestion above is not bizzare, it's a normal use case: run Docker on Linux like it's meant to be run.

Docker for Mac has had performance issues for years, especially related to file I/O. The common suggestion is to use NFS to get around those, which is just ridiculous when you think about it. [0]

[0] https://vivait.co.uk/labs/docker-for-mac-performance-using-n...

Re:Running Docker on Apple Silicon M1 (Follow-Up) by weaksauce on Friday November 27, 2020 @06:22PM (#25233479)
> It shocks me that so many people want to run Docker on a platform it was never built for.

surely you can imagine a situation in which a developer prefers to develop on a mac but wants to deploy to a linux server though? that's the use case here.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by chipsa on Friday November 27, 2020 @08:47PM (#25234398)
Seems like the sensible solution is to have a linux VM and do push everything into the VM to run. Which is what Docker on Mac apparently does, but with less control over doing it yourself.

This is the exact workflow that VSCode w/ remote is supposed to enable: you just connect to the VM and everything works. VM could be somewhere else. Or it could be on the local machine. Doesn't matter.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by derefr on Thursday December 03, 2020 @02:47PM (#25293692)
Why would I want that control when Docker on Mac does everything exactly the way I would do it if I set it up myself?

I don't want to maintain my own special-snowflake VM just to run docker containers on it. I want a dumb cattle VM running Container OS or an equivalent, whose only job is to run containers, ephemerally, connected to my host. The less it can do other than that, the better. In fact, best if it gets blown away on every restart.

Any statefulness is to be avoided, because a stateful Docker host might mislead me that my images will work in prod, when they're really dependent on something in my dev VM. Caches, databases, message queues? In development, they're ephemeral. Blow those containers away, please. I don't want any persistent volumes, host mounts, any of that. This is development, not deployment. Any data is just there to verify that the code is doing the right thing. Why would any such data need to live longer than the containers producing+consuming it?

(In the rare case that I do want a persistent database, I run it on the host. It's already a special snowflake; may as well treat it like one. As a bonus, this forces me to ensure my applications can target external resources using connection-string env-vars — which is almost-always relevant in production, where the DBMS is going to be some cluster external to the compute environment.)

> VM could be somewhere else. Or it could be on the local machine. Doesn't matter.

I don't know about docker itself, but I'm using Docker on Mac for Kubernetes "application" development. Targeting my commands to my local Docker-on-Mac k8s cluster vs a remote one is just a `kubectl config set-context` away. (Or you can do the same from the Docker on Mac tray menu.)

Re:Running Docker on Apple Silicon M1 (Follow-Up) by robertlagrant on Saturday November 28, 2020 @12:29AM (#25235521)
It's not the same flow. What if I want to use docker-compose to spin up some services locally and test them? How does a linux VM help me compared to just running docker-compose up and having the details of needing a VM abstracted away?
Re:Running Docker on Apple Silicon M1 (Follow-Up) by pardner on Wednesday December 09, 2020 @10:54PM (#25369481)
> It shocks me that so many people want to run Docker on a platform it was never built for.

Yet, it works, and well, your shock notwithstanding.

If your goal is a SINGLE portable, virtualized platform for your developers, which does not require a persistent internet/SSH connection, and which is "fast enough" for developers to be effective, Docker on Mac is a pretty swell solution.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by jml78 on Friday November 27, 2020 @07:46PM (#25234041)
And docker on Linux doesn’t support all the features that docker on Mac does. Specifically kubernetes.

You can dismiss this but if your dev shop is doing dev work that lands in a k8s cluster, it sure is nice to just have devs install docker desktop for Mac and they have a fully functioning k8s cluster that just works.

My whole company uses macs except me. I had to spend a bunch of time figuring out how to get a dev environment working on Linux. And it wasn’t easy as none of the out of the box k8s solutions support how we developed our build system. If I wasn’t a k8s admin from early versions of k8s I would have just given up.

No platform is perfect.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by reissbaker on Friday November 27, 2020 @08:34PM (#25234328)
Kubernetes runs natively on Linux.

It sounds like your company built its dev tooling specifically around Docker for Mac. It's not surprising that it was a pain to replicate on Linux your company's work as a sole programmer.

But that doesn't mean that Linux doesn't support Kubernetes well. Linux is the primary target for k8s! It runs more efficiently and has better support than Kubernetes on Mac. Minikube has worked as a dev cluster on Linux long before Docker for Mac shipped a k8s dev cluster.

(I, too, have been involved with Kubernetes projects since the early days, and have built k8s tooling at fairly large companies.)

Re:Running Docker on Apple Silicon M1 (Follow-Up) by jml78 on Saturday November 28, 2020 @08:44AM (#25237460)
I never said kubernetes wasn’t supported on Linux. I said docker on Linux does not have that as a feature out of the box.

Go install docker desktop for Mac. Click a preference and you have kubernetes.

That is not the case in Linux. Can you install kind? Sure. Can you install minikube? Sure.

And define support? To give you a simple example, in minikube on Linux how do you make local images built by docker available in minikube?

https://hasura.io/blog/sharing-a-local-registry-for-minikube...

It involves using dockerhub (rate limited) or running another local registry that you retag and push.

How about docker for Mac? No changes required at all, if the image is in the docker registry, it works in kubernetes

This is the exact type of retagging non sense that I hate in a dev workflow and is completely hacky.

So I solved it myself using k3s but I don’t think I have seen anyone else tackle it on Linux. Especially not minikube or kind

Re:Running Docker on Apple Silicon M1 (Follow-Up) by Rotareti on Saturday November 28, 2020 @06:06AM (#25236910)
> And docker on Linux doesn’t support all the features that docker on Mac does. Specifically kubernetes.

This is nonsense. We invested multiple man month this year to create a local k8s dev environment for our company. Our devs use MacOS and Linux. Me and my colleague evaluated various solutions for running k8s locally, all of which worked fine on Linux out of the box, while the process of setting them up for MacOS was riddled with issues (mostly around performance).

Re:Running Docker on Apple Silicon M1 (Follow-Up) by jml78 on Saturday November 28, 2020 @09:16AM (#25237616)
I am talking about out of the box features. Docker for Mac has kubernetes built in. Check a box and you have a k8s cluster. On Linux you need minikube, kind, or in my case, I built a custom k3s solution.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by webmobdev on Friday November 27, 2020 @12:32PM (#25230662)
> BUT... you're recommending this as a workaround for limitations in expensive "Pro" local development machines, as part of an encouragement to go ahead and buy them.

Yeah, I came to say the same thing - if you are anyway going to do remote dev, why still bother buying a new Apple device?? Anything else will do fine too!

Re:Running Docker on Apple Silicon M1 (Follow-Up) by drewg123 on Friday November 27, 2020 @10:17PM (#25234944)
The battery.

My desktop is an AMD Threadripper 299WX running FreeBSD. My laptop is a mid-2014 MBP. I can build a kernel about 8x faster on the AMD than in a VM on the mac. So when I'm away from my desk, I use the MBP to ssh to the AMD and do all my dev there.

My biggest problem with my current MBP is that the battery life is down to 1-2 hours. Less if I have a video call.

I could maybe just use a chromebook or windows laptop, but the Mac "just works" for all kinds of corporate stuff and is the path of least resistance.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by capableweb on Saturday November 28, 2020 @08:00AM (#25237260)
You had it since 2014 so the battery is tired, you'll get less and less usage out of your battery over time.

That's why professional laptops lets you change the battery. As we're professionals, we use our laptops a lot, so the battery needs to be exchangeable without having to buy a new laptop, so you can restore the same battery life as you had to initially.

Now any professional laptop (except the "modern" Apple ones) let you change the battery, if you don't want to do 3rd party repairs yourself. But I highly recommend you either change your battery in a repair shop, or get a laptop meant for professionals, ThinkPads are pretty good in that area. And if you do a lot of remote dev, it doesn't really matter which one, as long as it has a good WiFi card so remote latency/jitter gets as low as possible.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by raarts on Friday November 27, 2020 @02:57PM (#25232077)
Battery life?
Re:Running Docker on Apple Silicon M1 (Follow-Up) by webmobdev on Thursday December 03, 2020 @12:19AM (#25285681)
Cheaper to buy a powerbank for laptop then invest in a crippled yet costly Apple product just for battery.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by neurostimulant on Saturday November 28, 2020 @03:26AM (#25236192)
I basically use the same setup (an old mbp paired with a beefy linux workstation for remote development) and the only things that keep me from migrating away to a thinkpad running linux is because I'm still doing some ios and mac development. But so far remote development with vscode is working great with very low friction. It feels like I'm working locally even when I'm outside my home network.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by flemhans on Friday November 27, 2020 @04:51PM (#25232893)
> if you are anyway going to do remote dev, why still bother buying a new Apple device??

For me it'd be because of the User Interface.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by Kwpolska on Friday November 27, 2020 @04:54PM (#25232908)
If you want the macOS user interface, just buy an Intel Mac — new, used, or refurbished; they are still on sale, they still work (and they support all the tools you want perfectly).
Re:Running Docker on Apple Silicon M1 (Follow-Up) by chiefalchemist on Friday November 27, 2020 @02:35PM (#25231894)
Yes and no. For starters, there's reliability and durability. There might even be resale value. Just because you don't want to go all in (i.e., MBP) - or can't - doesn't mean you want to own a piece of junk.

I'm not disagreeing with you per se. Simply pointing out there are other considerations when selecting hardward.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by jack_pp on Friday November 27, 2020 @07:04PM (#25233758)
There are very reliable and durable machines for cheap, stuff like thinkpad t480+ or the x1 carbon 6+ gen.

For example : https://www.ebay.com/itm/Lenovo-ThinkPad-X1-Carbon-6th-Gen-i...

Re:Running Docker on Apple Silicon M1 (Follow-Up) by twblalock on Friday November 27, 2020 @07:56PM (#25234101)
I wouldn't be willing to do my work on a used laptop from eBay. I want something that has a warranty so I can get a replacement if something goes wrong, ideally on the same day.

I don't think my manager would take it well if I told him that my used eBay Thinkpad is broken and I need to find a replacement before I can work again.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by sebmellen on Friday November 27, 2020 @09:29PM (#25234650)
If you're diligent with your backups, I guarantee you can buy another eBay/Craigslist Thinkpad and get it working before you get a "Genius Bar" appointment.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by pardner on Wednesday December 09, 2020 @10:45PM (#25369411)
Thats IF your local Apple store is even taking appointments; none on Oahu are. Plus there's apparently significant parts delay no matter where you get the repair done.

It took Apple 32 days to get my MBP 16" repaired, returned under Crapplecare.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by ApolloRising on Saturday November 28, 2020 @12:34AM (#25235537)
A week minimum from what I've seen in the past few weeks.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by sebmellen on Saturday November 28, 2020 @02:32AM (#25235982)
Ah, fair caveat. I suppose the pandemic has changed things. I haven't bought myself a new computer in a few years, but last time I did, Craigslist was full to the brim with sellers.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by NoSorryCannot on Friday November 27, 2020 @09:32PM (#25234676)
Yes, if you need that kind of service, then you're going to have to pay for it. That goes without saying.

Better yet, get the office to pay for it, if they're going to be so demanding.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by bluedino on Friday November 27, 2020 @11:18PM (#25235233)
They’re cheap, buy two.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by noelsusman on Friday November 27, 2020 @12:42PM (#25230767)
Yeah this makes no sense. I replaced my work computer with a cheap fanless NUC and moved to fully remote development, but the whole point of that is being able to work on whatever cheap hardware I can get my hands on. Buying one of the most expensive laptops on the market and then not using any of its hardware is nonsensical.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by m_mueller on Friday November 27, 2020 @01:45PM (#25231486)
Well is it one of the most expensive? MBA baseline could be had for 1000, the one I’d pick with 16GB for 1200. I challenge you to find me anything with such high build quality, screen and inputs, not to speak of a chip that is measurably the fastest and most efficient for any task you still want to do locally. I’ve been away from macs for couple of years, but these M1s are IMO a game changer.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by nickjj on Friday November 27, 2020 @03:45PM (#25232430)
> I’ve been away from macs for couple of years, but these M1s are IMO a game changer.

The interesting thing here is, is it really a game changer in practice for something like web development and every day computer usage?

I'm not here to start a mac vs windows war but I have a 6 year old i5 3.2ghz CPU (4 cores, no HT) with 16gb of memory and a first gen SSD.

I use this workstation for full time development / ops work on Windows with WSL 2 / Docker, etc..

Everything is still pretty damn fast and it feels no different than the day I put together the machine.

Opening Chrome from hotkey to being able to type takes a second. Opening a terminal feels instant. Working with Vim and 50+ plugins has no type delay. Disk I/O feels good. I can keep multiple VMs running, run multiple Dockerized large web apps in various web frameworks, open 20+ tabs in a browser and a bunch of other stuff and it doesn't break a sweat. Sometimes I forget that I have image editors and other stuff open in virtual workspaces too.

I also do a lot of screencast recording / editing. The only part of my workflow that feels sluggish at times is rendering videos but that ends up being a non-issue because if I need to export 75 videos for a course I queue them up before I goto sleep and it finishes before I wake up the next morning. For 10-20 minute videos here and there I just render them before doing something where I go AFK (showering, eating, going outside, etc.).

I guess what I'm getting at here is, I'm not sure how a faster CPU will really help that much in my day to day besides crushing benchmarks.

Are folks running non-M1 MBPs experiencing slow downs in their day to day where they feel compelled to get one with an M1? Where do you see and feel the performance wins in practice?

Re:Running Docker on Apple Silicon M1 (Follow-Up) by m_mueller on Friday November 27, 2020 @04:28PM (#25232732)
Not sure about current Intel MBPs but I have been forced onto ThinkPads for last 2.5 years, currently on an X1 yoga. IMO this whole experience, coupled with Windows 10, is really crappy. TouchPad driver has issues with sleep mode, with no manufacturer fix on the horizon since multiple years. So my organization's solution was to disable lower power states. Now even in standby it drains battery in 6 hours or so. Screen is still 1080p, and even if it was higher res, windows still has scaling issues in places. Settings are all over the place - since some update, the only place to make sense of your language /keyboard list is Powershell. People give Apple shit for their QA but I think most of them have not used Wintel in the last 10 years.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by catach on Friday November 27, 2020 @07:28PM (#25233929)
> People give Apple shit for their QA but I think most of them have not used Wintel in the last 10 years.

I assume a significant amount of long-term Mac fans give Apple shit not because they're comparing to other ecosystems, but to an ideal of Not Sucking.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by tshaddox on Friday November 27, 2020 @02:45PM (#25231982)
> BUT... you're recommending this as a workaround for limitations in expensive "Pro" local development machines, as part of an encouragement to go ahead and buy them.

I agree with that in principle, but in practice Docker development on Intel MacOS already performs so poorly that it’s effectively broken anyway. I’ve actually been looking forward to Apple Silicon in the hopes that Docker starts over again and gets things working without the constant CPU pegging and 5-10x performance penalty.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by PopsiclePete on Friday November 27, 2020 @03:38PM (#25232364)
I’ve been using docked on macOS for the past 5 years and it’s been quite pleasant. I had a few times when CPU was spiking and that was fixed with subsequent patches. Definitely over a year ago. I don’t think “constant CPU pegging” is a typical docker-on-Mac experience?
Re:Running Docker on Apple Silicon M1 (Follow-Up) by rootusrootus on Friday November 27, 2020 @03:36PM (#25232352)
> 5-10x performance penalty.

I don't use Docker on Mac, but I'm curious how much of the performance penalty is attributable to VirtualBox. I use a VirtualBox-based Vagrant environment, and the performance is awful. It mostly comes down to terrible disk performance due to how VBox shares directories from inside the VM to the host filesystem. Apparently it can be fixed entirely by switching to local NFS, but I haven't had any success getting that working.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by closeparen on Friday November 27, 2020 @03:47PM (#25232443)
Docker for Mac uses a native hypervisor framework now, VirtualBox is not involved.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by girvo on Friday November 27, 2020 @10:56PM (#25235134)
I explicitly bought the top of the range i7 based 2020 13” MacBook Pro for this reason; while I guessed that the Apple Silicon MBPs were going to be even faster, I rely entirely on Docker and other fiddly dev tools for my job, and I figured the edges wouldn’t be smoothed out for at least 12 months or so.
Re:Running Docker on Apple Silicon M1 (Follow-Up) by wjossey on Friday November 27, 2020 @01:06PM (#25231096)
Is it a bizarre suggestion? The laptop seems pretty wonderful by all accounts. Low power draw, amazing battery life, great OS (I’m still a fan), great mouse, I like the keyboards (blasphemy I know)...

So, if I like all those things, but I can’t build a docker image locally (for now), why not just do something that will potentially improve my development experience in addition to allowing me to use this machine?

I mean, folks should do what they want. But, I’d say calling this recommendation bizarre to be a bit over the top :)

Re:Running Docker on Apple Silicon M1 (Follow-Up) by ashtonkem on Friday November 27, 2020 @01:24PM (#25231288)
It’s certainly weird to spend $1-2k on a high end laptop and then have to do workarounds to run one of the more important pieces of software in the current technical stack.

I personally would wait until Docker works, if that was a problem for me.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by mongol on Friday November 27, 2020 @01:30PM (#25231347)
As you said yourself, 'I’ve found remote development to be really fantastic as an option on a personal “underpowered” laptop. '

I totally believe that, but the question is, how good of an option is it for a powerful, expensive laptop.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by wjossey on Friday November 27, 2020 @02:30PM (#25231865)
I usually draw the line for local vs. remote if I'm spinning up multiple services. In particular, if I'm using something like minikube to do end to end testing (I develop tooling on top of Kubernetes), remote development is far superior because I can offload a bunch of the heavy lifting away from my development machine. It's pretty easy to peg one's CPUs using Docker & K8, resulting in CPU throttling and just a slower experience locally.

If I were in IT, I'd not be buying M1 laptops right now for the company. However, for a personal development workhorse, I'd jump on it. I wouldn't miss local docker.

Re:Running Docker on Apple Silicon M1 (Follow-Up) by bryanrasmussen on Friday November 27, 2020 @04:07PM (#25232575)
I have always supposed that something that works great on an underpowered laptop would work even better on a full-power laptop.