[HN Gopher] Docker for Mac M1 RC ___________________________________________________________________ Docker for Mac M1 RC Author : mikkelam Score : 402 points Date : 2021-03-19 09:06 UTC (13 hours ago) (HTM) web link (docs.docker.com) (TXT) w3m dump (docs.docker.com) | nicoburns wrote: | > Some container disk I/O is much slower than expected. See | docker/for-mac#5389. Disk flushes are particularly slow due to | the need to guarantee data is written to stable storage on the | host. | | Huh. This could be problematic given that Docker disk performance | on macOS was already dreadful on intel machines. I would love to | see Apple give this some attention. | pella wrote: | Ouch ... ~10x slower ???? | | https://github.com/docker/for-mac/issues/5389 | | from a github comment: _" Such a surprise every time I import a | database to see it run about 10x slower than amd64."_ | londons_explore wrote: | Since a lot of use of docker on a desktop machine has no | requirement for data resiliency (web dev work where all | containers can easily be wiped and rebuilt), it would be good | to have a flag for "no flush" which just ignores all flush | requests. | hashkb wrote: | You still want e.g. incremental rebuilds and file watching | for tests and all that. It's really sad to hear this hasn't | been addressed in years. Development with Compose on Linux | is such a pleasure. | londons_explore wrote: | You can still have all that - flushing behaviour only | affects things if the host machine suddenly kernel panics | or loses power. For a laptop with battery backup that's | probably a once a year occasion. In that case, I'd be | happy to wait a few minutes for some docker stuff to be | rebuilt. | tommoor wrote: | Yea, I think this is the same issue: | https://news.ycombinator.com/item?id=26332732 | | Still an issue in the latest RC today | deergomoo wrote: | Can this version run the official MySQL images under QEMU? I had | everything working on the last preview version except for MySQL; | they would immediately crash with a Go error. | Thomaschaaf wrote: | I don't understand why Docker Desktop e.g. Docker for Mac and | Docker for Windows is available for free. I think it's a value | added service and is executed beautifully and would be a fair way | for the company to generate revenue. | dustinmoris wrote: | Because if you can't do `docker build` locally when learning or | building software or studying IT then you will look for | alternatives which allow you to achieve the final goal in a | similar or "just good enough" way and then you will never start | using Docker, not even in production. | | For many developers Docker alone has a huge cost of entry in | terms of learning. If you also ask them to pay for something | which many dread to learn then even less people will adopt a | technology which is actually one of the best innovations in | software delivery from the last decade. | Thomaschaaf wrote: | A lot of products e.g. CAD Software are available for free | for personal/educational use or for a limited time. | Alternatively I like the approach JetBrains (IntelliJ) are | taking by providing the software for free or a reduced price: | https://www.jetbrains.com/de- | de/idea/buy/#discounts?billing=... | cies wrote: | That not generally how developer infrastructure tools work | these days. | jpgvm wrote: | Without it being free it would likely be replaced by a free | alternative that would further limit Docker Inc from directly | influencing their users now the core Docker daemon has been | thoroughly commoditized. | pjmlp wrote: | There is no reason for Docker when all OS just have native | containers support. | | In the end it is just a bunch of APIs to abstract OS APIs, | which end up being the minimum common denominator, as each OS | offers different container capabilities. | danieldk wrote: | _There is no reason for Docker when all OS just have native | containers support._ | | Indeed. On Fedora Docker has already been replaced by | rootless Podman containers, which are great for | development. I wouldn't be surprised if Podman will take | over on Linux workstations pretty quickly. | okamiueru wrote: | Docker/Containerisation is open source software with a free to | use license? If this was restricted on Mac and Windows it would | just add another reason to avoid these for infrastructure use. | Avoiding OSX for this is already a no-brainer, given the lack | of cloud availability and otherwise pricing, but at least if | you're stuck with that, you can learn the tools for free. More | or less the same for Windows, although there you at least have | some cloud offerings. | Eric_WVGG wrote: | Subjectively speaking, I would happily pay thirty bucks for a | native alternative to Docker Desktop. I find the UI gross and | disruptive. | adamors wrote: | Considering how badly Docker runs on Mac, I don't think anybody | would pay for it. I had to set up a Linux machine I ssh into | locally just to be able to work. | f6v wrote: | My experience was generally different. Yes, it gets hot and | loud on Intel. But I can still do web development that | involves PG, Rails/Django, and Redis. | adamors wrote: | With 2-3 containers there isn't an issue. When you need to | run 8-10 at once, the machine becomes unusable. Same setup | on Linux doesn't even register as load. | okamiueru wrote: | There must be something wrong with the OSX implementation | then? Container images should be static and won't be | duplicated across multiple instances. Maybe I'm wrong | about how it should work. My impression was that if I had | a 1 GiB image, I could spin up 50 of these, and still use | roughly 1 GiB of memory (assuming running process es | don't need to allocate much themselves). | | Edit: From testing by spinning up 10 MySQL servers, sure | looks to be the case. Each runtime allocated approx 215 | MiB of memory, which is what the available system memory | was reduced by for each. The container image itself was | approx 400 MiB. | [deleted] | dustinmoris wrote: | That's great news. I've been using the Preview with M1 support | for a while now and have had no issues so far. | darkteflon wrote: | I ran into [this](https://github.com/docker/for- | mac/issues/5208) bug just today - mentioned in the release | notes. | | If you're using a VPN (in my case, the NextDNS client), you | might want to de-select the option to start Docker on boot. | Start it manually instead once your VPN client is loaded and | connected. In my case a failure to do this would completely | bork the ability to connect to the internet - either over | ethernet or WiFi. Took me a while to figure out what the cause | was. | Accacin wrote: | How do people use Docker on Mac? It's so slow for me I've started | to use my X220 (Linux) as it's faster than my 2018 MBP. | | We use containers inc. a MySQL container and accessing it is | incredibly slow, with a request taking 5-10seconds that's instant | on the production server. | | I've heard that Docker Sync can improve this, is it worth a try? | [deleted] | lowercased wrote: | I use docker on a mac, and... while I do feel it 'slow' in some | sense, I've never seen 5-10 second access time to a mysql | container. MBP 2019 here, but never saw that on MBP 2015 | either. Is there some other mysql config that's trying to do | some network lookup on the incoming connection? I vaguely | recall that being an issue with mysql on bare metal servers | years ago - if there was some specific network name as part of | access control, the mysql would try to resolve the hostname, | and that would sometimes be very slow, depending on external | factors. (--skip-name-resolve and reverse DNS seemed to be | things I'd found along the way, but I'm doing this from memory | and it was 10+ years ago - haven't hit that issue in... a long | time). | Zealotux wrote: | Curious on how Docker runs on M1, it's well known for being an | horrendously slow piece of software on Apple computers, draining | battery life like crazy. Any feedback on M1 Docker so far? | ericpauley wrote: | It's phenomenal. I use an M1 Air to develop a webapp with Rails | + multiple independent large Webpack builds (Make sure your | `node_modules` and other speed-sensitive folders are all in | named volumes not bind mounts). It is insanely fast compared to | my 2017 15", and battery can last all day even when using | Docker, something unheard of on my last laptop. | katsura wrote: | Some rare crashes here and there (before the RC, I haven't used | the RC too much yet), some images don't work, some node | packages require extra packages where the same image on linux | worked without them. But after the initial hurdles of setting | it up, it actually works pretty great for my use-case. I'm | using it for 5 different projects 2-4 containers each. If you | develop React and Typescript with VS Code remote though, you | should definitely up the memory limits, because the initial 2 | Gb was hit all the time (every 10-30 minutes), which made | Docker crash on me every time. Once I set this higher, my | experience improved tremendously. I only have to charge it once | a day with 10-12 hours average daily use. | cies wrote: | Needing to use Docker is a great reason Linux on the developer | laptop makes total sense. | | > horrendously slow piece of software on Apple computers, | draining battery life like crazy | | Exactly. | | Thankfully there is Docker on Mac: how would my colleagues with | shiny laptops get work done otherwise? | blunte wrote: | I have done and still do all my development on a Mac and | deploy to Linux. | | I run 3-5 rails servers, redis, postgreql, mysql, jetbrains | ides, slack, meet, spotify, vscode, and probably two or three | other apps I forget now. I do all this on either my 2014 15" | MBP i7 or my 2019 13" MBP i5. The only thing I lack is drive | space. | | I have reinstalled my 2014 OS never, and I have a truckload | of usb devices (mostly music production) attached. | | You simply cannot match that with a Linux laptop. I love | Linux, but not for desktop use. | coldtea wrote: | > _Thankfully there is Docker on Mac: how would my colleagues | with shiny laptops get work done otherwise?_ | | This "shiny/for the clueless" Linux-edgelord meme must die. | Might as well write "MS" with a dollar sign in 2021. | | Go to any programming conference and check the speakers. Over | 50% use an Apple laptop. Check major developers people | follow, from old Unix hands like Rob Pike, to every major JS | cat, to admins, all the way to the creator of Gnome, Gnumeric | and Mono, and their preferences, and you'll find they use a | Mac laptop with macOS. | | (And hardware wise, even Linus Torvalds had an Apple G5 tower | as his main driver, and later an Intel Macbook Air he praised | as the best machine he had used (though he used Linux on | those). | | In any case, there are benefits and tradeoffs, but "lol, Mac | is teh suck" is inane. | | To correct you: no, Docker is not used because "you need to". | It's used (also on Linux) for reproducability, isolation, the | ability to write code with different dependencies with the | whole system at your disposal, and to not mix your driver | machine with your development environment. | | It is the same use if you run Linux distro X and deployed on | another version of it, or on the same version with some | tweeks/different libs, or to whole other distro. | | And no, it hasn't been a "horrendously slow piece of software | on Apple computers, draining battery life like crazy" for | ages, and when it was it wasn't because of some macOS | limitation, but because the company had done a half-arsed job | with the fs layer. | | And as far as "needing to use Docker", macOS is not any | different than any Linux/FreeBSD distro on that front. If you | prefer a local, mix-everything-in, not discliplined approach, | unlike what Docker offers, you can install anything you like, | from Brew, MacPorts, Fink and so on. You can even have Nix | for reproducible builds under that scheme. | anthk wrote: | >Go to any programming conference and check the speakers. | Over 50% use an Apple laptop. Check | | In the US. Not in Europe. The iPhone is barely testimonial | there, while in the US, the iPHone has a good market chunk, | and thus, more developers. | | The old Unix hats mainly use Acme and MacOS as a dumb | client against a 9front cpu(4) with Drawterm or with | Plan9port. | | The could use whatever it has a GUI to run drawterm on, as | they did with Windows 2000 back in the day. | | Also, OSX still has HFS as case insensitive by default. On | modern Unix environments, OSX is useless. Period. | vetinari wrote: | > This "shiny/for the clueless" Linux-edgelord meme must | die. Might as well write "MS" with a dollar sign in 2021. | | It works both ways; it will live as long, as "linux is | useless, because I had a problem with wifi in 2002". | jjmarinho wrote: | I mean, its 2021 and you still cannot fractionally scale | the resolution without slashing your battery life and | losing 30% of your processing power (and some random | stuttering on all applications). | | Having a 15.6" 1080p screen basically means i need to | choose between using my glasses all day or using Windows. | vetinari wrote: | Use Wayland. Fractional scaling works fine there. If you | are using X11 and xrandr scaling, and see performance | impact, maybe that's the reason why it is not supported | in GUI. | | On the other hand, I'm have no perfect eyesight, but in | Linux, 1080p at 14" is as usable as Windows 10 at 125%. | Here, the design choices made by Gnome are hitting its | strong points, it is perfect resolution for @1X scale. | anthk wrote: | Also, any modern DE could scale fonts up to 14pt and far | more. | | And OFC choose whatever theme, icon and font you like in | order to match your resolutions. | | Windows 10 is useless without scaling. | cies wrote: | > because the company had done a half-arsed job with the fs | layer | | Exactly. | | And I know Mac reigns in dev land. Just the moment Docker | comes around (and it does quite a bit lately) all those | shiny (and that's a compliment) pieces of hardware become | heated vacuum cleaners. | | I'm not saying "lol, Mac is teh suck" (what you apparently | want to read). I'm saying: here's something that my Linux | laptop wins at. Docker. | | You come across rather angry, even saying that Linus uses | Apple hardware without running the macOS... How does that | work as an argument against my experience? | coldtea wrote: | > _You come across rather angry_ | | Nah, just replying to the rather snarky? "Thankfully | there is Docker on Mac: how would my colleagues with | shiny laptops get work done otherwise?" | | > _I 'm not saying "lol, Mac is teh suck" (what you | apparently want to read). I'm saying: here's something | that my Linux laptop wins at. Docker._ | | Well, sure. There are other things a Linux laptop wins | at. Tinkerability for example, part replacements, etc. | | > _even saying that Linus uses Apple hardware without | running the macOS... How does that work as an argument | against my experience?_ | | It works as an argument that it's not something merely | "shiny", but a good piece of hardware for a par | excellence technical user. | cies wrote: | > Thankfully there is Docker on Mac: how would my | colleagues with shiny laptops get work done otherwise? | | Nope. I replied to someone saying Docker on Mac is a | joke, and I agreed saying: one of the last points where | using Linux compared to Mac is advantageous. | | Saying Macs are shiny is a compliment. You took it as | snarky, but it wasn't (before the new keyboards I | preferred --and owned-- Macs). | ogre_codes wrote: | > ... all those shiny (and that's a compliment) pieces of | hardware become heated vacuum cleaners. | | > I'm not saying "lol, Mac is teh suck" | | Biggest eye-roll post of the day. Literally one sentence | after the other you suggest Macs are worthless and that | you aren't saying they suck. | bronson wrote: | And the "You come across rather angry" was such a good | touch. | adamors wrote: | The problem with Linux on the Desktop is that it's still a | horrible, time-wasting experience. | | I have to unplug/replug my mouse every time I boot into | Ubuntu because it's not recognised otherwise. Another wired | mouse I have is not recognised at all (was working just fine | during install). | | As somebody who works 8+ hours a day, I don't have time for | this shit. | arvinsim wrote: | I installed Pop!_OS on my gaming PC. Didn't have to do any | fiddling at all. | | I was so impressed by it that it has replaced my Mac laptop | as a development machine at home. | danieldk wrote: | I have a Ryzen 3700X desktop and have literally zero | hardware issues with NixOS and Fedora. The Intel NUC8i5 I | had before that also worked flawlessly. | | I also purchased a ThinkPad T14 AMD. It works fine with | Linux and all the hardware works out of the box (including | the fingerprint reader, WiFi and webcam). Additional | benefit: upgraded it from 16GB to 32GB for under 100 Euro. | | I used Macs from 2007 until 2020. But in my daily work, I | have experienced far more issues with macOS than with Linux | in recent years (I was a very happy Mac user from 2007 to | ~2015). | noir_lord wrote: | > The problem with Linux on the Desktop is that it's still | a horrible, time-wasting experience. | | In your experience - that's not uniformly true - I'm a | counter example - I installed Fedora on this machine when I | built it a few years ago (and have upgraded to each | release) and have had zero hardware issues and that's | running an RTX2080 with the binary driver (historically a | pain point on Linux). | | As someone who also uses a recent generation work issued | mac the different for me is stark. | adamors wrote: | I'm well aware my experience is not uniformly true. | | My point is, that an inconsistent experience is not | something I have time to debug anymore. I ran Arch 10+ | years ago when I had more time than sense, but those days | are long gone. I'd rather spend my non-work time AFK. | guggle wrote: | I'd argue that the experience is significantly worse on | laptops than desktops where it has been more or less fine. | tirrex wrote: | I hated linux desktops, it was unusable for me. I gave a | try again 3 years ago, since then, no issues, it's been | super smooth for me. I used 5-6 laptops along three years, | I'm still surprised it's that good. I use stock ubuntu. | Maybe I'm just lucky that I picked laptops/hardware which | work smoothly on linux/ubuntu | f6v wrote: | > Needing to use Docker is a great reason Linux on the | developer laptop makes total sense. | | So do you always run the same server distribution with | exactly the same package versions on your laptop? Otherwise, | you miss the point of Docker. | hibbelig wrote: | They are saying that they need to run Docker precisely | because they need different package versions. Given that | Docker is required, Linux is attractive because then you | can run Docker without running a Linux VM. | ubercow13 wrote: | That's not the point. Docker is native to Linux, it is much | faster and simpler on Linux where it does not have to use | virtualisation. | coldtea wrote: | > _where it does not have to use virtualisation_ | | You'd be surprised. | ubercow13 wrote: | Go on..? | coldtea wrote: | > _where it does not have to use virtualisation_ | | Container isolation is still OS-level virtualization. It | just doesn't use a hypervisor. | pjmlp wrote: | It might use a hypervisor though, as the pendulum swings | back | | https://katacontainers.io/ | pjmlp wrote: | Windows has native containers, and I bet the Docker GUI will | eventually become a thing of the past. | | No, I don't use WSL, and still get work done. | dustinmoris wrote: | As I said in a comment below, I've been using the preview | version with M1 support for a while now and I have it | constantly running in the background. I literally use Docker | all the time, mostly building images locally to test/debug | something or running things like Redis locally or nginx or | something else during development and I have not had any issues | so far. | | And the M1 still amazes me every day. I code all day long, | watch youtube, listen music, do zoom and slack calls and so on | and don't charge my MBP even once during the day. I once forgot | to plug in my laptop in the evening and the next day I was | surprised that by mid day my battery was down to 10% after | working on it for 1.5 days without charging. That's when I | realised how long it lasts and that I got used to not charge it | like my iPads or phone. | | Also never gets hot and no fan noise yet. | cageface wrote: | Are you using an 8GB or 16GB M1? My 8GB air has been fine for | everything I've done with it so far but I'm wondering if | Docker will be the first thing that needs more than 8GB. | solarkraft wrote: | I still wonder a lot about whether 16GB are worth the | 200EUR for a development workflow like this. Most sources | I've seen say "no", does anyone have any personal insight? | danieldk wrote: | If you are using a MacBook for work, get it with 16GB. | 200 Euro is at most a few hours of salary for a developer | in a western country and it will improve heavy workflows | (JetBrains IDEs, Docker, etc.) a lot. | | If it is a personal Mac, I would still go for the 16GB | version, but purely for longevity. With 16GB you can | probably use the MacBook longer. Also, less swapping | means less SSD wear. | | (16GB should really have been the default, at least on | the MacBook _Pro_.) | lupire wrote: | Making the non cheapest option the default is bad for | marketing. | danieldk wrote: | I meant that they just shouldn't sell the Pro with 8GB. I | know that the meaning of 'Pro' is somewhat debated, but | if they want to address professional developers and | creatives, 8GB is just too little. | | Also, 8GB additional memory is not expensive at cost | price. They could use the different amounts of baseline | memory as a differentiator between the Air and Pro, | especially now that the delta between the Air and Pro is | so small (same SoC plus one more GPU core, Touch Bar that | a lot of people hate, better screen). | jacurtis wrote: | I had the 8Gb MBP. I bought it the day they were released | so it arrived on launch day. Because of the holidays we | had extended return window, so we could use it until | January 15th before returning it. I used it that whole | time and fell in love with the computer, but returned it | for the 16Gb model. But not for the reasons you would | expect. | | I originally bought the 13" MBP on M1 because I was in | desperate need of a new laptop. I previously had a maxed | out 16" MBP that cost me around $3,500. I had used it for | about 5 years and was looking to replace it. But Apple's | systems were in flux and I didn't want to drop $3,500 | again on an intel macbook right as they were going out of | production. So when I saw the new M1 macs released, I | decided to buy the $1,200 13" MBP with 8Gb of RAM and a | 256HDD. Just the base model. The idea was that I would | use this computer for a year, until Apple released the 16 | inch "big boy" models. Then I would sell the 13 inch and | get the real 16 inch that I was waiting for. | | But when I got my new mac in November, I started using it | and was just so amazed by the performance that I realized | it could do what I was asking it to do, plus I loved the | size, the epic battery life, and the no fan noise. I | essentially fell in love with that computer. When I went | back to my 16" macbook it felt so large and heavy, I | wanted nothing to do with it. Even if Apple fixes the fan | noise (that the 16" is horrible with) and the battery | life, I still hate the size. I had truly fallen in love | with the 13 inch computer I already had. And it was less | than half the price I had planned on spending during my | computer upgrade. | | I originally bought the 13 inch macbook pro as a stop-gap | until the 16 inch models were available on M1. But after | using it, I decided that this was going to be my new long | term computer. So at the end of the return window I had | about 6-8 weeks using the computer. I had never had any | trouble with the 8Gb of RAM. BUt my mind just kept | telling me that 8Gb wasn't enough. | | Since I was already upgrading the computer for more SSD | storage, I really went back and forth on whether to | upgrade the RAM as well. | | The reason it was such a hard decision is that I couldn't | pinpoint a single time when I felt that the 8Gb held me | back. | | But I kept going back to the idea that if I keep this | computer for even 3 years, the $200 becomes insignificant | (to me at least, I recognize I am very fortunate). So I | couldn't really identify a good reason to upgrade to | 16Gb, but because I decided to do it anyway because for | $200, it was worth future proofing it. So I ended up | returning my base model 13 inch macbook pro and upgrading | it to a 1Tb SSD, with 16Gb of RAM. It is now my daily | driver computer. Even fully loaded it is still a fraction | of the cost of my old macbook pro. I couldn't be more | happy with my computer right now. | | The performance is just incredible. No fan noise ever. | Epic length battery life. Perfect size. I just really | love this thing. | | So do you need 16Gb of RAM. No. Not at all. I have not | yet identified a time when the 16Gb has helped me or made | a noticable difference. When I had the 8Gb, I never felt | like it was slowing me down. But with all that being | said, if your budget allows for $200 extra, I would get | it just to future proof your purchase. But if you are | already penny pinching, then don't worry about the 8gb. | You probably won't ever notice it holding you back. | ogre_codes wrote: | I have the 8GB MBA I bought for my wife and feel somewhat | similarly. There are a few times when things lag a bit, | but mostly it just hums along. | | I'm holding out for the next gen to release for my | personal machine and will go with 16GB and whatever the | next CPU is. Mostly, as you suggest future proofing, but | there are a few spots in my workflow where it does hang a | bit which I think extra memory would help with. | dustinmoris wrote: | 13 inch, 16GB, M1 | | I swear by 13 inch but I know I'm in a minority. I don't | need a huge screen for my work. I like to look at code | without bending my neck left and right all day long and if | I need to multi task I four finger swipe left or right and | feel extremely productive this way for many years now :) | | EDIT: | | I shall say I had an 8GB intel MBP before and 8GB was just | about enough for everything including Docker. | cageface wrote: | I was using the 16" MBP before this but having gotten | used to the 13" that now feels ridiculously huge. It | helps that I'm not using XCode much though. That really | wants a lot of screen real estate. | lupire wrote: | > bending my neck left and right | | You can't see all of a 15" screen without bending your | neck? | | You think 15" is a "huge" screen? | jacurtis wrote: | 13 really is the perfect size. I had a 16 inch forever | before it because that is the size you needed if you | wanted a capable enough computer to do what I needed. Now | I can get a $1,200 computer that works better than my old | $3,200+ computer. | | I have fallen in love with the 13" size. I still have my | 16" computer and I pulled it out the other day and it | looked comically large on my lap. It seriously felt | ridiculous. I couldn't believe that was my standard for | so long. The 13" is still good enough to do most | anything, but small enough to really be portable. My mom | has an 11" air and it feels like a kids toy in my lap, | too small for my liking. But the 13" MBP is right in that | Goldilocks zone. | | I will admit I turn down screen scaling down to minimum | to get more stuff on the screen. The default screen | scaling state makes things quite large out of the box. | kristiandupont wrote: | I realized that, similar to you it seems, think of my laptop | more like my phone now. | | Until now, my laptop would be plugged in per default and | every now and then I would run on battery. Where as now, my | laptop needs to charge now and then, but most of the time it | runs on battery. | jacurtis wrote: | This has been my biggest psychological shift with my M1 mac | too. I used to use my laptop plugged in whenever possible, | only using battery power if plugged power wasn't an option. | | Now I almost never use my M1 laptop on wall power. I use it | on battery power all day long, even when sitting right next | to a power outlet. I charge it every few days when I go to | bed or won't be working on my computer for a while. This is | similar to how you use tablets and phones. You usually | charge them up and always use them on battery power. Only | in an emergency do you use it while plugged in. The laptop | now actually fits into that category now and is used like a | true go-anywhere laptop, not a portable computer. | jamil7 wrote: | The previews I've used work fine but a few images are not | updated to work yet. My intel laptop died this month and forced | me to use the M1 for all my development work (was previously | using it for iOS only), I ended up setting up a remote ubuntu | environment on a Hetzner box to do all my Docker work. It works | great and I might end up keeping this setup. | __oh_es wrote: | I've only had one issue where it crashed, but otherwise its | been stable for my lightish use running compose with three | ubuntu images. | | Battery life was still better than my i7 2015 mbp | blakesterz wrote: | I guess I'm in the minority here, but I'd say it's slow. Not | SLOW, but slow, compared to the Linux box I have right next to | the Mini. It's tolerably, but I'd say starting up the app that | I work on takes about twice as long on the mini, and it runs | maybe 1/2 as fast? It's noticeable, but not so slow that I | can't use it. Maybe this new release will speed things up for | me. Nothing else is slow about the Mini, but Docker is | noticeable slower. | ogre_codes wrote: | Since Docker only runs on Linux, it's always going to be | faster/ better on Linux. On the Mac you have to run Linux in | a hypervisor, then run Docker on that instance. Things can | get a better, but it's always going to be a bit of an alien. | JofArnold wrote: | It's been pretty fast since oxsfs was replaced with gRPR-fuse. | Was in the beta builds for quite some time and now is switched | on by default in 3.x. Idle CPU has been cut from about 100% | down to about 20% also. | kureikain wrote: | M1 Docker works and it rocks solid. I was skeptical at first | but I upgraded to M1 because my old Air is too slow and I | cannot open Chrome+Slack at a same time. | | Suprisingly I have no problem with docker. I just download the | docker preview and it works flawlessly. One minior issue is | that if I build a Docker image that support multi arch, then | push to docker hub, then that image is arm64 by default. I have | to do `docker build --platform amd64`. | | I document that process here: | https://axcoto.com/notes/2021-03-13-docker-apple-m-nginx-and... | I think that's the only gotcha I got so far. | ginja wrote: | It works reasonably well and doesn't seem to drain a lot of | battery. My only complaint is that running x86 images is super | slow... By super slow I mean that running tests on a medium | size Django project takes 10 minutes, as opposed to a minute on | my Ryzen Linux desktop. | janlaureys wrote: | I'm running a bunch of Drupal sites in docker on a M1 macbook | Air and it's running much much faster than docker for mac on | the 2014 Macbook Pro I had before. The docker images we're | using (wodby-drupal) only recently started supporting arm64 | properly though so I had the new laptop a few weeks before it | was actually usable but now I'm very happy. | | Haven't been able to run a php 5.3 container yet though for | this one project that is pretty much on life support. | coldtea wrote: | > _Curious on how Docker runs on M1, it 's well known for being | an horrendously slow piece of software on Apple computers, | draining battery life like crazy._ | | No, it's not. Perhaps that's an old wives tale from the era | (2-3 years ago) when it had bad fs performance and didn't use | the native hypervisor directly? | vetinari wrote: | Running Docker on native Linux machine is vastly superior; | the "old" TR1900X I have under the table is much more | performant (for Docker) than M1 MBP on the table. | | But then, M1 MBP is 25W part and not 180W, it is also silent, | unlike the TR. So pick your poison. | ogre_codes wrote: | > Running Docker on native Linux machine is vastly superior | | I don't know about "Vastly", but it is better and will | likely always be better because of the structure of Docker. | Docker is by definition, a container that runs atop Linux. | Since Linux is already Linux and the Mac has to run Linux | in a hypervisor, bare metal Linux is almost always going to | be faster. | | But, Docker is just a part of the workflow. Dealing with | the limits of the Linux Desktop to get better Docker isn't | worth it a lot of the time. | vetinari wrote: | > Dealing with the limits of the Linux Desktop to get | better Docker isn't worth it a lot of the time. | | That's just your personal preference; I'm using all three | (macOS/Linux/Windows 10) and all three are fine for | desktop. | ogre_codes wrote: | Absolutely. Should have been more clear it was | preference. | qeternity wrote: | We switched over to Garden a year ago from a local docker-compose | setup for dev. Garden has definitely had its rough spots but it | works most of the time and it's pretty amazing when it does. | | Run your dev environment remote and instantly rsync file changes | and hot reload services. I've had an M1 Mac since launch day and | not missed a beat since we don't depend on local docker. | 0x008 wrote: | How is Garden different than using docker-cli with some random | container runtime other than docker? | ths wrote: | (Garden co-founder here) | | Garden supports in-cluster building, using buildkit or | kaniko. | | This way, you don't need to have Docker or k8s running on | your dev machine as you're working. | | It also automates the process of redeploying services and re- | running tests as you're coding (since it leverages the | build/deploy/test dependencies in your stack). | | We also provide hot reloading of running services, which | brings a similarly fast feedback loop as with local dev. | | The idea is to have a dev environment that has the same | capabilities as the CI environment, and to be able to run | any/all of your tests without having to go through your CI | system (which generally involves a lot more waiting). | madarcho wrote: | Your site seems to target specifically teams with messy | docker compose setups. Is there a simplified/supported | migration or onboarding path? | darkwater wrote: | We already have some home-grown kubernetes dev environment | in which every developer/QA can spin up all of our services | in a dedicated namespace, but it's a bit tedious and | spaghetti-code as it grew organically over time (from a 15 | devs team to a +70 one). Garden looks like a nice | alternative solution, do you think Garden Core is enough to | get started? (we like to get our hands dirty) | ths wrote: | Sounds like Garden Core could be a great fit here. | | The motivation behind Garden was that, like you, we had | built our own home-grown kubernetes dev environments, but | felt like there should be a polished, general-purpose | framework + tool for this sort of thing. | wints wrote: | Hi, another Gardener here. Garden Core should indeed be | enough to get started. I'm trying to keep this as factual | and non-pitchy as possible for the sake of providing | context--the enterprise product gets you: | | * RBAC and secrets management (also makes it possible to | control which users have access to which types of | environments) | | * Direct integration with GitHub or GitLab, so you could | trigger something to happen in Garden based on a VCS | event | | * Automated environment cleanup (coming soon) | | * Support and all that | johnjungles wrote: | Can you please share a link? When I search for garden container | I get gardening results lol | holistio wrote: | https://garden.io was first result for "garden docker" | reaperducer wrote: | _https://garden.io was first result for "garden docker"_ | | For you. Google spends a trillion dollars a year to make | sure each person gets customized search results. So being | sanctimonious about your "first result" only shows that you | don't know how Google works. | [deleted] | desmap wrote: | Is the creation of volumes as easy and straight-forward as with | docker/docker-compose? | 10ko wrote: | (Garden engineer here) You can take a look at the container | module type guide to get a feel for how we reason with | volumes. We have a persistentVolumeClaim module type which | can used by container modules and that essentially creates a | k8s pvc. | | See more: https://docs.garden.io/guides/container- | modules#mounting-vol... | pkilgore wrote: | File access on preview7 was atrocious. It would take a seeded | postgres-debian container 3 minutes to start (maybe 64 megs of | data inside) if you kept the postgres volume on the local disk | inside the container! | | Intel -- instant. Hope they fixed it! | Tepix wrote: | So, i just got my Macbook Air M1 16GB a few days ago. What's the | best way to run Linux on it in a VM? Is it Docker? | jpeeler wrote: | Depends on what out of box experience you want and if you want | a GUI. For an easy out of box experience, open source, GUI | based tool I suggest checking out | https://github.com/utmapp/UTM. There's also an app store | version that supports the author I believe. | fghorow wrote: | Interesting. Can UTM run Windows also? I have a few critical | domain-specific commercial apps that are Windows only, and | need that in a VM... | jpeeler wrote: | Haven't tried it, but think so: | | https://mac.getutm.app/gallery/ | fghorow wrote: | OK. I need to look into this. Thanks for the heads-up! | derefr wrote: | > Some container disk I/O is much slower than expected. See | docker/for-mac#5389. Disk flushes are particularly slow due to | the need to guarantee data is written to stable storage on the | host. This is an artifact of the new virtualization.framework in | Big Sur. | | If I don't care about persistence of my containers (e.g. I'm just | running ephemeral tests), is there a way to disable Docker for | Mac / Virtualization.framework's cache-flushing behaviour | entirely? I.e. to get the same behaviour as mounting Linux ext4 | with -o nobarrier,data=writeback? | | Does Virtualization.framework maybe have first-class support for | swap volumes -- i.e. inherently ephemeral volumes, that don't | need to be flushed to the host? | bouk wrote: | I wish apple would support a couple extra kernel features (like | bind mounts) so we can have native macOS 'containers' instead of | this nonsense. Running MySQL by running qemu inside a Linux VM is | just insane. Nix can fill some of the same roles, but it doesn't | work on M1 yet | sneak wrote: | Wouldn't that also require full namespace support, not just "a | couple extra kernel features"? | | At that point if you want to bind mount in a container you're | talking about macOS binaries running inside the container, | which means a full macOS docker architecture port (like they | did for Windows, which AFAICT didn't make them much if any | money, but I think M$ paid for it anyway). | bouk wrote: | Namespaces are useful for security maybe, but for macOS the | biggest reason to use containers is to have a controlled and | reproducible way to run certain pieces of software. With | chroot and bind mount you can already achieve that. | TameAntelope wrote: | Very excited about this, been wrestling pretty hard with the | previous release, it had _lots_ of issues, to the point where I | was SSHing into my old laptop to run builds. | | Really hoping those days are behind me with this, it made me feel | a bit foolish for springing for the mini as quickly as I did. | | Edit: Nope, segfault yet again. God damn, well you get what you | pay for! | aasasd wrote: | I thought M1 is deprived of hardware support for virtualization? | Wouldn't that botch dev workflows considerably? | iends wrote: | This was only on the dev kits, which were released without | virtualization support. | aasasd wrote: | Gotcha, thanks. | dev_tty01 wrote: | No, it is supported in hardware and MacOS has frameworks to | support virtual machine implementation. | | https://developer.apple.com/documentation/virtualization | nhubbard wrote: | No, I think it was the difference between Intel-derived | virtualization and ARM-derived virtualization. Virtualization | on ARM Macs still exists. Docker just had to convert their | Intel-specific code to ARM-specific code. | chatmasta wrote: | I love Docker, but I gave up on using it on Mac. I put a _lot_ of | effort into fighting it, but ultimately, it seems some of the | issues are just too fundamental. I like to call the Docker-for- | Mac experience the MacBook Airplane. At some point, your fans | will start spinning, your productivity will crash, and you 'll | spend the next three hours sifting through open GitHub issues | from 2017 where everyone is still complaining about the same | problems. | | I'm all in on VSCode Remote SSH development now. It works | extremely well, I barely even notice I'm not programming on my | own computer, and my laptop no longer sounds like a passenger jet | taking off. It was very easy to setup. Our stack is still very | Docker heavy, but using the containers on a remote machine makes | it much more tolerable to work with. | pchm wrote: | Totally agree. Docker for Mac performance is just unbearable | when dealing with a semi-large webapp. I recently moved to | remote development - macOS with Ubuntu running in VM (VMware) | via Vagrant. I edit code using VSCode & Vim (via SSH & tmux | tabs in iTerm2). | | Based on my benchmarks it's more than twice as fast as Docker | for Mac - and only minimally slower than native Docker running | on a Dell XPS. | | I'm enjoying this setup so much that I'm considering moving all | my dev-related tools to a VM (which will hopefully allow me to | get rid of homebrew too). | ChristianGeek wrote: | Does Vagrant work on the M1 without issues? | pchm wrote: | No experience with M1, still on an Intel MacBook. | jacobzweig wrote: | Does anyone know if there's a parallel workflow in PyCharm? | That is, running on a remote docker container. I haven't yet | been able to get this working but it'd be a vastly superior | workflow for my use cases in ML/DS. | chatmasta wrote: | There are basically two parts you need to solve. You need | files that you edit to save on the remote, and you need to be | able to run commands on the remote. So a barebones setup | might be SSHFS for mounting files locally, and editing them | locally while running commands in an SSH session in your | terminal. | | Though honestly... you should really try VSCode. You'll get a | lot more than simple editing and remote commands (e.g. | integrated debugging, etc). VSCode actually installs and runs | a headless instance of itself on the remote, and decouples | the UI from extensions, language servers, etc. It's a lot | more than just editing remote files. | | Try downloading it, creating a $5/month VM, and setting it up | as a Remote SSH machine. I know it feels like a cult but it's | far and away the best editor experience I've had. I switched | from Sublime and was up to speed in a day because I could | import all my keybindings. You can probably do the same | coming from PyCharm. | skrause wrote: | > _At some point, your fans will start spinning_ | | This problem has been solved with the M1 MacBook Air. | noofen wrote: | M1 MBP here, and my lap is freezing. I have no idea what the | fans sound like, and I do lots of Go benchmarks using all | cores pretty often (I know, it's probably not that strenous-- | but for a tmux+vim+Go dev this thing is impressive). | giuscri wrote: | You setup a virtual machine then? | chatmasta wrote: | I use an actual remote machine (Scaleway in my case). VSCode | remote does work with any VM or container though. | e40 wrote: | i have been using docker desktop on my trash can pro for a long | time. No issues. | dawnerd wrote: | I did the same after constantly yelling at docker. It's amazing | what vscode has been able to pull off to make ssh feel local. | I've tried other solutions before and they've all had | noticeable lag. The only time I notice is if I'm remote and on | a cell connection or airplane. | | The one thing I wish they'd improve was re-establishing a | connection after the computer sleeps. Really annoying to have | to reload the entire window, sometimes. | symlinkk wrote: | Why is a reload annoying? All of your files are saved and | reopened to exactly where you left them | dawnerd wrote: | Terminal windows get messed up. Oddly sometimes they | resume, but most times they don't. Example docker-compose | will still run in the background but if Im coming back over | a weekend I might not remember and running a different | project will error since another docker is using the ports. | | I know not a big issue and I could use tmux, but I'm lazy. | chatmasta wrote: | Tmux solves this problem for me. I don't use the VSC | integrated terminal at all. I have its scrollback buffer | set to 1. | | The reload isn't bad for me -- it even keeps my text | editors open with undo history. I'm not sure if I had to | do something to enable that. There is probably a way to | make it retain the integrated terminal, too (though you | should really use tmux, it's awesome). | symlinkk wrote: | VSCode added the ability to restore "local" terminals | after a reload in the Feb update: | https://code.visualstudio.com/updates/v1_54#_retain- | terminal... | | I'm guessing that doesn't work for remote terminals | though, I haven't tried it. | | Seconding what the other guy said though, tmux is perfect | for this. If you use the iTerm2 tmux integration you | don't need to remember all the commands to switch tabs, | scroll back, etc, it just feels local just like VSCode. | lupire wrote: | On Windows Docker just crashes at startup, skipping the CPU/fan | part. | hu3 wrote: | You're joking right? At my previous job we had dozens of devs | who worked with Windows WSL2 + Docker just fine. | | From what I remember the only requirement was that the dev | environment stayed inside WSL2. Performance was native-like. | With VSCode remote extensions it just works. | | I still prefer Linux as a general development platform. | deergomoo wrote: | At work we used Docker for local development but not | production, purely because we have some ageing internal systems | and it made it easier to deal with different versions of PHP, | MySQL, etc. | | After numerous Docker woes on Mac I ended up just spending a | tiny bit of time installing and configuring Nginx and various | PHP-FPM and MySQL versions from MacPorts. It was easy, I | learned a lot more about the platforms we use, and because | they're all socket-based they can all be running at once. Just | added a couple of bash functions to bring everything up and | down. | | Sure my dev environment isn't the same as prod, but it wasn't | when I was using Docker either. | me551ah wrote: | I wish Apple would give Docker some love like Microsoft does. | Using Docker with WSL is a breeze, and it runs so much better | than MacOS. And as an advantage you get access to Linux package | managers which are so much better than brew. Brew is good, but | Linux package managers like pacman and apt are so much better. | Having a proper Linux distribution open in one window while I | play 'Call of Duty' in another, is one reason why I've moved to | Windows again. | countmora wrote: | Where do you see the limitations of Brew? Despite it being a | little wonky on beta releases of a new macOS iteration it works | fine for me. | vetinari wrote: | As others mentioned (it is slow, has problem with multiple | users, cannot pin versions) it is also missing features the | linux distribution have. For example, you cannot have | Provides: alternatives as rpm/dpkg do, you must use packages | for resolving dependencies as they are provided by upstream. | | For example, when postgresql 12 was released, it took some | months to appear in brew. Meanwhile you could not use | alternate taps to resolve dependencies, if some package | required postgres, it had to be the original one. | iamAy0 wrote: | Why would you install postgres through Brew though? | | Those times are way gone, that's the purpose of containers. | | I've been using Brew for a while to just install "core" | packages like python, curl, wget and such, and everything | else like a postgres, nginx, whatever..a go to a container. | michaelcampbell wrote: | Not going to wade into the "should" or "shouldn't" of | this, but I have used postgres-via-docker for ... few | years now, and it is a DREAM. And I never have to worry | about versions or dependencies (at least I haven't yet). | earthboundkid wrote: | I've installed Postgres on my Mac with Homebrew, Docker, | and https://postgresapp.com. There are arguments for each | of them. On the pro side: | | - Homebrew is a general purpose package manager, and | Postgres is a package you might want managed. | | - If you're using Docker/Docker Compose for a project | anyway, that's the obvious way to do it. | | - Postgres.app is a specialized tool just for managing | Postgres installs, so it's hard to beat if that's what | you need. | | Some thoughts on the tradeoffs though: | | - Homebrew really doesn't like the idea of "versions". It | wants everything to be on the latest. That can be fine if | you just need a tool locally, but if you want dev and | prod to match, it is a pain in the ass. | | - Docker isn't really very good at persistence. That's | probably not a problem for local development, but you | should be aware of it. Running it on a Mac introduces | speed and memory issues you wouldn't otherwise have. And | now obviously there's the M1 problem. | | - Postgres.app is another thing to install. If you just | need Postgres for one particular project you might not | know about it or want to deal with installing something | new. | Toutouxc wrote: | > Those times are way gone, that's the purpose of | containers. | | Please elaborate on the claim that "running a SQL | database" is the purpose of containers. | Terretta wrote: | Why _wouldn't_ you want to run a database under | namespaces and cgroups from a dependency-bundled live | archive file tree? | | By and large, there's no such thing as a container, | there's just sprinkles of housekeeping magic. To wit, | Docker implemented in around 100 lines of bash: | | https://github.com/p8952/bocker | | Problems come when we think that today's containers | manage to actually contain anything, bring any security | guarantees, or do much else than just slightly-more- | successfully jump start a configurable bundle of | dependencies. | Spivak wrote: | I think you're being unkind to containers. Yes it's easy | to say that "containers aren't a thing" and then list all | the little tools that are used to implement them. That | doesn't make them not real any more than any other | abstraction. | | Why wouldn't you want to run a database under VT-x, with | random emulated hardware and a dependency-bundled disk | image? By and large there's no such thing as a VM, | there's just sprinkles of housekeeping magic? | | Containers as specced and implemented do come with | security guarantees. And if they fail to meet them it's a | bug. | vetinari wrote: | To be fair to GP, running sql database inside a container | does have benefits for development, and in many | situations, for deployment too. | | However, if I do some exploratory experiments, where I | don't care about repeability and where I use other local | tools (like the mentioned mapnik, or jupyter), having it | in container is needless complication. | vetinari wrote: | Because if you need to ingest some data, it is much | slower with Docker Desktop for Mac :/ | | Also, I have some tools installed with brew, that have | postgres as dependency (e.g. pgloader or mapnik). | dastx wrote: | Last time I used a Mac was around, maybe 3 years ago, so this | certainly may have improved. | | I had a lot of issues with Brew, but the biggest one was how | slow it was. Upgrading all packages on my Mac used to take | hours. | vkoskiv wrote: | Still quite slow. As far as I know, it's just a big heap of | small ruby scripts that invoke each other, and ruby isn't | known for blazing-fast performance. It also uses git | internally, and quite heavily, so that probably adds some | overhead as well. | vkoskiv wrote: | I think the main criticism of homebrew is that it's really | slow. | tokamak-teapot wrote: | Slow where? Searching could be faster, but it's a few | seconds. Installing is fast except where compilation | happens. I have to admit I don't know why it compiles when | it does, but it isn't all packages that get compiled. | ratww wrote: | It wants to update a few times a day by default when you | call it, so running a simple _brew install anything_ | normally takes about 30 seconds (I 'm in a MB Pro), even | if it's just to say the package you want wasn't found. | | If you don't run it daily, it takes about a minute or two | to update. | | But even when it doesn't update, it is extremely slow | compared to any other package managers. It is | disruptively slow and it takes a lot of resources, even | in a powerful machine (and I'm not talking about | compilation here). | tokamak-teapot wrote: | I think I'm just not used to faster package managers and | I don't install packages often enough for it to feel | disruptive to wait a few seconds. | | I do like tools to be as fast as possible, though, and | I'd forgotten about that update it does sometimes when I | run it - that does seem to take a long time. | | I'll have a look at how it works and see what the things | are that take time. I would expect network traffic for | updates, perhaps whatever it's getting updates from does | some processing (I'm sure it said something about | GitHub), perhaps there is some dependency resolution that | needs CPU... | | It would be interesting to compare its architecture to | other package managers if they're significantly faster. | ratww wrote: | The slowness is mostly due to Ruby and the _git pull_. I | contributed in the past and reimplemented it in bash, and | there isn 't much going on, honestly. | | 99% of the time, installing a package consists of | downloading a few zips from their CDN, decompressing and | linking. For those cases Brew could just be checking an | API instead of constantly cloning the git repository. | | I'm quite surprised nobody has reimplemented it in Rust | or Go. The architecture is quite simple compared to a | normal package manager. Maybe it's just superstition: | people see "package manager" and assume it's complicated | instead of digging into the code and finding out how it | works. | varjag wrote: | Well, a few seconds for package search in a local index | is slow. It's instantaneous with apt on my 3 year old | Linux desktop, where here is the famous M1 advantage? :) | | Installing anything with brew involving multiple | dependencies is also taking forever-ish, compared to mere | seconds with apt. | sonu27 wrote: | It also has a fair share of problems. Like multiple users | on the same machine, I had issues with permissions, etc | mark_l_watson wrote: | I second that. On my M1 MacBook Pro, I have both the M1 | version and Intel versions installed. I have found that if I | use the Intel installation to install something like MIT- | Scheme in a terminal running Rosetta, the it is available | everywhere. It took me a little while to get that sorted out. | SahAssar wrote: | It's been argued that the recommended way it works is a | security issue: | | https://applehelpwriter.com/2018/03/21/how-homebrew- | invites-... | | https://askubuntu.com/questions/261326/is-it-safe-to- | chown-u... | tobylane wrote: | On Apple Silicon it now installs to /opt/homebrew, a change | they've been wanting to do for a while. | matthewbauer wrote: | Does /opt/homebrew still end up in root's PATH, I wonder? | That has the same issue that /usr/local has I think. | Letting users mess with root's environment basically | means there is no real distinction between root and non- | root. | mikemcquaid wrote: | No, it doesn't. | Hackbraten wrote: | It's not really insecure. See: | https://security.stackexchange.com/q/187502 | cactus2093 wrote: | It's been a little while since I relied on it heavily, but | you still can't install/pin specific versions, right? That's | a huge limitation if you want to do any reliable development | on macOS directly without using a vm or docker. | | It's also just so slow to update if it's been more than like | an hour since you last updated, the way it uses one big git | repo under the hood is just chaos. | strokirk wrote: | Can you pin versions in apt? Last time I checked it | involved a lot of work and swearing, but that might have | improved lately. | andoriyu wrote: | Not really, it was pretty verbose, but wasn't hard. | Pinning is for setting package priority between multiple | repos. | | What you're looking apt is apt-holding: | | apt-mark hold libxfont1 | | That been around since 2013 IIRC. And there was dpkg way | of doing it before. | jameshart wrote: | You can pin versions in brew (brew pin <package>) to | prevent upgrades. | | You _can_ install specific versions, but it requires some | gitfu - you need to uninstall, find the brew commit where | the package is at the version you want, then install from | that specific git blob. | skohan wrote: | > Using Docker with WSL is a breeze | | Have there been some updates recently? About a year ago we were | trying to use Docker on a windows host at work, and dealing | with things like file system paths was a nightmare | datavirtue wrote: | Several months ago. A year is a long time for the microsoft | bleeding edge these days. You can come back to something a | year later and it is completely revised in many respects. | Bugs gone, new ones created and discovered, whole subsystems | rewritten etc... | kyriakos wrote: | enable WSL2, install Docker Desktop in windows and it just | works. you dont even need to install docker in WSL, its done | automatically and kept updated by docker-desktop. | gizmo385 wrote: | You might also need to update some settings in your BIOS to | enable the hypervisor, but once you get it working it's a | breeze to use. | | WSL is really remarkable. | atonse wrote: | WSL is Linux. They run the unmodified Linux kernel in a pico- | process an docker runs on top of that. | | Technically there shouldn't be file system issues right? | imwillofficial wrote: | It's not an unmodified kernel. | shawnz wrote: | It is basically an unmodified kernel. Like in any | purpose-built usage of Linux, it is compiled with | specific options and patches for the environment it is | made to run in, but you can replace it with your own | kernel image if you want. | skohan wrote: | How does it work with local directories? Is there a | separate file system for WSL, or does the linux kernel | translate windows fs paths or something? | H12 wrote: | It's a separate filesystem, but from WSL you can access | Windows files in mounted drives via the `/mnt/<drive | letter>` directory. | dboreham wrote: | And vice versa: linux home dir is at something like | \\\wsl$\ubuntu\home\username | radicalbyte wrote: | It's the same filesystem with some kind of | translation/adapter. I love it because it makes | supporting our multi-platform OSS projects easy. | | You do have the occasional issues regards line endings; | that's the only negative I've had so far. | | EDIT: H12 is more accurate. The Linux OS is separate, but | the Windows FS is mounted to a logical place and "just | works". | skohan wrote: | Yes line endings for configuration files was one of the | issues we ran into | tw04 wrote: | Yes, there is a separate filesystem for WSL, but you can | still traverse the Windows filesystem as well, including | mounting external drives. You can also browse the linux | filesystem from windows explorer as expectded. | | https://docs.microsoft.com/en-us/windows/wsl/compare- | version... | | https://devblogs.microsoft.com/commandline/access-linux- | file... | | https://community.openbiox.org/d/72-windows-subsystem- | for-li... | shawnz wrote: | WSL1 used a syscall translation layer in a "pico process", | WSL2 simply uses Hyper-V | dboreham wrote: | It's even mode magical than that : the docker containers | run inside a Linux kernel that is not the one running your | WSL2 environment, but the two are in cahoots such that the | filesystem is shared and hence container mounts are as fast | as they would be on a bare metal Linux box (e.g. -v | $PWD:/workdir). | exdsq wrote: | WSL2 is now just a regular VM | alpanka wrote: | There are some differences in the software thought. | exdsq wrote: | True, but it uses a Linux kernel over hyper-v rather than | a wrapper over the win32 api like WSL1 (from what I | understand!) | alpanka wrote: | Yes, but it is a slightly modified distro which causes | some issues | | And not all are minor. Not being be able to run LXC is a | deal breaker for me. | hda111 wrote: | What makes you think WSL2 isn't able to run LXC? | imwillofficial wrote: | WSL2 is a custom Microsoft kernel | rcarmo wrote: | If you can't do what you want in it, please open a ticket | on https://github.com/Microsoft/WSL - there is also a | repo for the kernel, but AFAIK technical feedback is best | sent through this one. | | (disclaimer: not directly involved with WSL, just trying | to help) | exdsq wrote: | You could with a little work in June 2019, not sure what | the picture is like now but it might be possible. I've | used nix quite a bit on WSL2 which was surprisingly good. | | https://blog.simos.info/how-to-run-lxd-containers-in- | wsl2/ | guggle wrote: | I do have locking issues with some sqlite files. I guess it | has to do with the fact that the filesystems are shared. I | wish I had time to investigate more. | ajford wrote: | Do you use any other virtualization software along side HyperV? | We have a lot of legacy stuff that integrates with VirtualBox, | but wanted to start edging towards Docker. | | However, when I last spent a couple of sprints attempting to | get them working side-by-side, it was a pretty big failure. I | couldn't get VirtualBox 6.0 running without falling back to | soft virtualization which was painfully slow (booting a Ubuntu | box took the better part of an hour). | yonixw wrote: | Why not using HyperV itself instead of Vbox? | ajford wrote: | Because of a lot of existing internal tools that directly | call and manage VBox to set up local testing environments | and stacks. | | It's a planned initiative for the future, but it means a | fundamental change in a number of tools and would require a | rather large set of rewrites. | | On top of that, out of the large pool of users, only a | small handful would actually need to run Docker side-by- | side with these tools, meaning that it's a huge rewrite to | allow a small number of people to use Docker on their | desktops. That ultimately means it's getting very little | traction and keeps getting pushed down the backlog. | cageface wrote: | What kind of machine are you running windows on? | deergomoo wrote: | > Brew is good, but Linux package managers like pacman and apt | are so much better | | I used starting fresh on the M1 as an excuse to give MacPorts a | go, and I like it much better than Homebrew. There's some | smaller packages that aren't on MP, but all the big stuff is | there and to me it feels much more like a Linux package | manager. | bronson wrote: | I'd like to be done with Homebrew. (I asked you to install | pv, not thrash the world.) | | Anyone tried Nix? I'm trying it soon. If it doesn't stick, | yep, back to MacPorts like it's 2007. | memco wrote: | Could you expand on what is better about macoorts over brew? | I quickly got onto the Macports page and saw first off that | sudo is needed for updating itself and second that I have to | select the right version for my OS: Brew is a single install | that does not require sudo to update so there's a few things | that already make Brew more appealing for me. What does | MacPorts do better? | deergomoo wrote: | This is the article that prompted me to give it a try, and | summarises my feelings better than I could: | | https://saagarjha.com/blog/2019/04/26/thoughts-on-macos- | pack... | sgerenser wrote: | I've always preferred MacPorts to brew. I think you've nailed | it, it just feels much more like the Linux package managers | I'm used to. Homebrew has definitely won the popularity | contest though. | rconti wrote: | I used MacPorts ages ago, and honestly thought it went | away, which is why I switched to Brew, which I've never | gotten comfortable with. | geoelectric wrote: | IIRC my issue with MacPorts was that it insisted on | recompiling the world from its ecosystem as dependencies | because it kept everything super-stable, whereas brew would | attempt to use system ones if they were viable. It was more | or less FreeBSD Ports vs. Debian apt-get as the model at | that point, and MacPorts was (predictably) FreeBSD-like. | | Over time I'm not sure brew is any better now, though. I | have unlinked versions of gcc, python, etc., etc. under | /usr/local that are there just to handle brew packages that | listed them as pinned dependencies. It's nice that brew | doesn't expose them to CLI unless I want it to do so, but | it's not less complex. | | Assuming MacPorts has a good "bottle" type concept of | precompiled packages now too (haven't looked for years) | it's probably about the same as brew now, just more stable. | If they still compile from source every time a la BSD, that | would be my main sticking point. | f6v wrote: | I heard WSL2 was no good. | discordance wrote: | VS Code with remote container dev on top of WSL2 works really | well for me: | | https://code.visualstudio.com/blogs/2020/07/01/containers- | ws... | ryneandal wrote: | It's been flawless and I've been using it pretty extensively | as a replacement for vagrant development VMs. | | I believe one of the issues laptop-related, and I work | exclusively on a desktop these days, so that was a non-issue | for me. | unicornfinder wrote: | Without more detail it's hard to say much that's useful but | in my experience WSL2 has been nothing short of excellent. | Also switched from Mac to Windows with WSL and the | development experience is much better. | tyingq wrote: | People were frustrated mostly with 2 issues... | | a) It doesn't play well with deep sleep mode, and crashes. | Perhaps it's been fixed, I don't know, I just disabled deep | sleep. | | b) The networking is different than WSL1 and requires odd | workarounds for things like X11 to work normally. I had to | use a 192.168.1.x address for DISPLAY instead of localhost. | Which required some VB scripting to reliably work for me. | dgellow wrote: | My main issue is the lack of support for serial (so, no USB | support): https://github.com/microsoft/WSL/issues/2195. | | Other that this I love Windows 10 + WSL2 as a dev | environment. | tyingq wrote: | It's a little clunky, but you could use a Windows RFC2217 | remote serial server with socat on the Linux side to make | a virtual serial port tied to a real one. I've done this | (albeit not with WSL), and it did work. | | https://gist.github.com/DraTeots/e0c669608466470baa6c | tyingq wrote: | Too late to edit, but there's also an unapplied pull | request that seems to make usb passthrough work: | | https://github.com/microsoft/WSL2-Linux-Kernel/pull/45 | rcarmo wrote: | I have WSL1 alongside WSL2 for this. WSL1 works fine with | my FTDI adapters to flash ESP8266 and all. | cactus2093 wrote: | The only problems I've had with docker slowness (though it's | been a very significant problem) is shared file system | performance. It's made many use cases and tools that are slow | to begin with (like webpack) basically unusable for a | development workflow. | | So the main thing Apple could do to show some love to docker is | build out full apfs support in the Linux kernel. I have no clue | how much work that entails but presumably it's pretty massive, | and it seems totally unlike them. Maybe one day they'll have a | come to Jesus moment like Microsoft and start caring about | developers (non-iOS developers) but I don't really see it | happening. | cowmix wrote: | The fact you need to partition off RAM and CPUs for Docker on | the Mac is the killer for me. | laurencerowe wrote: | Don't you have to do that under windows too given WSL2 also | runs as a VM? | merb wrote: | no not in wsl2. (you can, but there is no need for that) | (btw. disk storage can be too small, but that is the only | problem that can occur https://docs.microsoft.com/de- | de/windows/wsl/compare-version...) | rcarmo wrote: | Actually that's done for you, whether you control it or | not. WSL2 is essentially a VM with better host | integration. | leoc wrote: | Apple (as you may know) did in fact have a spell as open- | systemsy Unix-loving guys, starting from the NeXT acquisition | but ending no later than the release of the iPhone. The usual | pattern, basically: | https://news.ycombinator.com/item?id=7525256 . | whimsicalism wrote: | The shared filesystems are also quite buggy. | | I was developing a database as a personal project that | involves mmapping a file and the Docker shared filesystem had | some peculiar behavior they was different from how normal | filesystems work. | unilynx wrote: | If you found this unusable, you probably haven't had to work | with the Virtualbox-backed version of Docker for Mac :-) | | Have you considered storing the npm_modules and running | webpack on a tmpfs/volume (so that it doesn't have to go | through the shared FS layers) and only copying the end | product to a shared volume? | derefr wrote: | Creating and mounting a loop-volume within the HGFS and | then running NPM in there, would probably also be helpful. | It certainly is when wrangling a directory with lots of | tiny inodes over SMB. (It's also what Apple themselves do | for running Time Machine over SMB: they create a | sparsebundle image on the remote and mount it locally, and | write to that.) | | (The efficient thing about this class of solutions, if | you're wondering, is that the client mounting the loop- | image ends up owning + managing the loop-image's internal | filesystem's metadata within its own local disk cache, such | that it can coalesce filesystem metadata writes and only | push a new copy of the disk-image blocks backing the | filesystem metadata after a potentially-huge number of | changes. With a network/host-guest filesystem, meanwhile, | every filesystem metadata change must become its own | synchronous message to the host, to be pushed to the host's | filesystem driver for linearization, so it can succeed or | fail relative to other things going on within the host.) | GordonS wrote: | Virtualbox-backed Docker on Windows was my first | introduction to Docker - it literally put me off touching | Docker for 1-2 years! | | After eventually falling in love with it on Windows and | Linux, I later tried it on MacOS... oh my. Not fun! | tshaddox wrote: | Yep, using Webpack in Docker on a Mac is essentially | unusable. I see around a 5-10x slowdown in Webpack builds. | Using docker-sync seems to help the CPU out a bit, so my | MacBook Pro doesn't do the jet engine space heater routine | quite as much, but the performance is still nearly | unusable. | | https://docker-sync.readthedocs.io/en/latest/ | aguilarm wrote: | webpack can be made use-able relatively easily if you do | not mount node modules over the shared file system. I've | been doing this for quite awhile with a volumes | declaration in docker-compose that looks like this | (running nextjs, assuming /usr/src/app is where your | dockerfile has your node stuff): | | (on service definition): volumes: - .:/usr/src/app:cached | - node_modules:/usr/src/app/node_modules/ - | next_artifacts:/usr/src/app/.next/ | | and then in the top level volumes key defining | node_modules and next_artifacts as blank/default. | | That means I mount everything _except_ node modules and | the build artifacts so the shared filesystem does a LOT | less work trying to sync stuff. The downside, of course, | is that I need to run npm commands both inside the | container and outside if i want them in my IDE. A fair | trade for decent performance. That setup is still not as | fast as native but definitely usable and does not send my | machine into space header mode much more than normal | usage. | tshaddox wrote: | Interesting. I have always had the same docker-compose | setup with a separate node_modules volume inside Docker, | but I've always still had the jet engine space heater | issue. | bdcravens wrote: | I've been able to improve performance in docker-sync by | adding high-churn folders that I don't care about to | sync_excludes | girvo wrote: | I used to run my own Xhyve based VM just to avoid the | brutal VirtualBox Docker system on macOS. Man that's some | bad memories. | | The newer Docker for Mac is better, but file system perf | still could be massively improved. Big node_module | directories can still cause pain even today | llimllib wrote: | > Big node_module directories can still cause pain | | is there any other kind? | DanHulton wrote: | That _used_ to be a problem for me, until I found Mutagen. It | is _surprisingly_ easy to set up, and my webpack builds in | Docker are only about 5-10% slower than running natively. | | https://nodewood.com/blog/how-to-speed-up-docker-on-macos/ | zaphirplane wrote: | Sounds like you like Linux but run windows ;) yeah outlook | word | jayfk wrote: | Are there any good iTerm like terminals for Windows available? | | Last time I checked, the terminal was horrible to work with. | somebehemoth wrote: | I don't think there is anything as good as iTerm. ConEmu is | not bad. | johnhenry wrote: | Not sure if it's what you're looking for, but Microsoft did | recently release a new terminal: | https://www.microsoft.com/en-us/p/windows- | terminal/9n0dx20hk... | bin_bash wrote: | They're investing in it but it's no iTerm | | https://github.com/microsoft/terminal | parhamn wrote: | Alacritty is cross platform and the terminal I use over iTerm | on MacOS as well (it's so freaking fast). It doesn't have | tab/windows management stuff but works great with Tmux. | MayorMonty wrote: | Windows Terminal and Fluent Terminal are both good | crb002 wrote: | WSL is probably easier to write for XNU than it was for | Windows. Yeah, silly that Apple hasn't yet. | pjmlp wrote: | https://www.opengroup.org/openbrand/register/ | | No need for WSL. | varispeed wrote: | The problem is that Apple does not want to spend money where | they don't absolutely have to. In their mind Docker is someone | else's problem and if that 3rd party will also pay salaries and | taxes, it's perfect for Apple. I am sure once Docker commit | resources and solve it, the Apple will be boasting how great | Docker works on their platform. | readbeard wrote: | I don't know, supposedly [0] Apple provided patches to help | get Blender running on M1. | | [0] https://www.reddit.com/r/blender/comments/jsc03l/blender_ | on_... | tobylane wrote: | And many others, transcribed list here | https://news.ycombinator.com/item?id=23643425 | ksec wrote: | And many of those were ported or tested on ARM before M1. | machello13 wrote: | There's a great deal of cases where Apple went out of their | way to help out 3rd parties with compatibility, including | quite a few cases with the M1 Macs themselves. Is your | comment based on anything or just typical HN "Apple = evil"? | ksec wrote: | The is because those 3rd parties matter to Apple's | ecosystem. And hence it is of their interest, Adobe, | AutoDesk, Panic, or any creative tools. | | Docker and Developer Tools does not happen to be one of | them. | m463 wrote: | Unfortunately, I think apple only invests in things apple. So | the "target market" is not developers for other platforms. | | Too bad because a _native_ apple docker would be really really | useful. imagine: FROM macos:10.13.3 RUN | xcode-build | | (I'm not talking about the current docker on mac which runs | linux in a vm) | nine_k wrote: | But where are you going to run the image? On a Mac Mini in | your DC? | | BTW macOS being a BSD derivative of sorts might benefit from | Docker development on FreeBSD, which uses jails instead of | cgroups, etc. At least, that could be easier to port, | assuming that macOS kernel has the needed facilities. | [deleted] | yrro wrote: | > Using Docker with WSL is a breeze | | Not if your Windows users have to use Direct Access to connect | to your container registry... | ojosilva wrote: | Apple is not giving proper love to their breakthrough laptop | chipset. They amazed the world with "neural net on chip" for | ML, even mentioning Tensorflow explicitly in its launch. Here's | the real deal: getting anything Tensorflow related to even | compile on M1 is nothing short of a miracle. Yes, Apple has a | binary version (yuck) of TF you can download, but that's not | good enough as many projects need specific versions and not | everyone (ie OSS devs) can spend that much effort on a fringe | tech. | | If I were Apple (ehem) I'd spend a small but meaningful budget | supplying devs to projects like Docker or TF to help speedup M1 | adoption. Given that the chip market is open for grabs I'd say | it could give Apple a much stronger headstart with their in- | house silicon strategy, even if that means helping improve | products or the bottom-line for well-established corps, some of | them competidors. | ogre_codes wrote: | Give me a break. | | The M1 migration is less than a year old and it's already the | single best/ most successful CPU migration in my memory. Far | better than Apple's PPC -> Intel Migration and massively | better than whatever half-steps Microsoft has done to port | over to ARM. | | Apple absolutely should invest in much of what you suggest. | In 6-12 months, after the platform is complete and mature | enough to identify where the big problems are. | | Most of us understand that you exercise caution when | migrating mission critical work onto a 6 month old platform. | | In the mean time, Apple has been hiring top Docker talent | like Michael Crosby. | | https://www.protocol.com/apple-hires-cloud-open-source- | engin... | | It's possible they are hiring top container developers just | to improve their internal cloud infrastructure. But what kind | of hardware do you expect these guys will be running? | | EDIT: Trimemd some repetitive stuff. | 600frogs wrote: | I'm definitely interested in WSL for developing, but last time | I tried it a while back (WSL2 just came out I think), there was | basic functionality missing e.g. I couldn't write and run my | own SystemD services. Has the situation improved since then? | | When you say "proper Linux distribution", I assume that's still | CLI only? Do you develop with e.g. emacs, vim on WSL, or do you | have some IDE with remote running and debugging into WSL? Or | have a missed a trick and in fact X/Wayland applications can be | run on WSL? | rcarmo wrote: | Re: CLI, there is ongoing work on getting graphics support | for over a year now: https://lkml.org/lkml/2020/5/19/742 | e12e wrote: | > still CLI only? | | With openssh in windows, it's been quite easy to run an x | server in windows, and use ssh with x forward for gui access. | | But rdp feels more native to windows, and both x and Wayland | has rdp server backends - so you can do things like: | https://www.nextofwindows.com/how-to-enable-wsl2-ubuntu- | gui-... | | But apparently ms is working on a Wayland compositor allowing | directly running gui apps - I don't think it's quite there | yet: | | https://www.phoronix.com/scan.php?page=news_item&px=Microsof. | .. | | https://github.com/Microsoft/WSL/issues/938#issuecomment-763. | .. | | Somewhat related: https://ltsp.org/ I'm not sure about the | state of a non-x rdp server for thin clients though. | 600frogs wrote: | Thanks for the links, some interesting stuff there! I think | my end goal is to have a contained development environment | whilst not being forced to use specific tools (i.e. VSCode | remote debugging, eugh) and not sacrificing compilation | times by running in a VM that's too slow. | | From the look of it, if I were to set up the WSL2 Ubuntu | GUI with RDP, that'd tick all the boxes, right? And as a | bonus I'd be able to access files in WSL2 from Windows. | | Any idea how WSL2 interacts with VPNs? I've seen some mixed | reports around the web but this is also a must-have for me, | if I can't use a VPN in my dev environment it's game over. | hazaskull wrote: | YMMV but for me personally with Dell Sonicwall it | basically does not work (even workarounds that mess with | MTU sizes are unstable). In my case the behavior is that | general networking speed drops massively as soon as both | VPN and WSL2 are active. I had to revert back to | virtualbox, which does not have such problems and as a | bonus allows me to run proper systemd (another thing | missing in wsl) | 600frogs wrote: | Interesting, that might be a dealbreaker then. Have you | found significant slowdowns in working in a VM vs native, | both in terms of compilation and day-to-day work, or has | it been negligible/unnoticeable? | | P.S. thanks for making an account just for this reply :) | hazaskull wrote: | Needed to create one for a long time ;) General cpu-bound | tasks seem fine in a vm; i/o is definitely slower but | much to my surprise linux's ext4 filesystem is so much | more efficient (?) than ntfs for small files that even | inside a vm (vbox or wsl) git actions are noticably | quicker than on native Windows! I'd prefer is wsl2 for | convenience over vbox if I could but my VPN is indeed the | dealbreaker and corp. won't support any other VPN | software | e12e wrote: | > sacrificing compilation times by running in a VM that's | too slow | | Fwiw wsl2 runs in a vm now (hyper-v). AFAIK it's in order | to increase fs performance "inside" Linux (so faster | compiles if compiling in wsl). | | It's also possible to use cifs/samba shares - but I don't | know what you're compiling? Chrome/Firefox sized c++ | projects? | | Might be worth it to try with a tmpfs/ramdisk either way? | running101 wrote: | I have it working with vpn. We have vpn at work and it is | forced tunneling mode. It modifies routes on my laptop. | Since wsl2 is a vm on a different network the vpn client | does not know about this network and doesn't know how to | route traffic. If you follows these instructions it | solves the problem https://github.com/sakai135/wsl-vpnkit | vetinari wrote: | > there was basic functionality missing e.g. I couldn't write | and run my own SystemD services. Has the situation improved | since then? | | No. WSL2 uses it's own, minimal (proprietary) init, which | basically launches default shell for the configured user and | that's it. No service management in sight, and no equivalent | of systemd's user scope or user session either. | meddlepal wrote: | You can boot the WSL vm with systemd but it requires some | fiddling. | | That said, I've been playing around more and more with WSL2 | on a secondary machine as a current primary Fedora user | (for about 10 years now) and I really haven't found a good | reason why I would need systemd in the WSL2 VM vs the | custom init. | vetinari wrote: | It is like Excel - most people use at most 20% of the | functionality, but any competitor that implements only | 20% is not usable. | | Most WSL2 users use it as shell to run occasional ELF/x64 | binary that runs in console; for services, they would use | Docker Desktop for Windows. Anything beyond that and you | will quickly find out, that it is not really a standard | linux distribution. | aseipp wrote: | A major use case I have for WSL2 requires systemd, full | stop (it's critical for the package manager I use.) It's | pretty painful not having it available, and this is | really something that needs improvement IMO. To be fair, | this could be fixed in the software too (to some extent, | not fully but working) which would also be a solution. | But I suspect this isn't the only problem people | encounter. There's a lot people use modern Linux for. | | In practice that hasn't been a roadblock for me, because | VMWare Workstation 15.5 finally supports running on top | of Hyper-V, so I can have both working at once. Moving | everything to a single hypervisor API has some nice | benefits... | strictfp wrote: | One possible solution to this is removing systemd from | all distros. That way you won't need it for your package | manager anymore. | vetinari wrote: | Yeah, and let's continue with removing Win32 from | Windows. That way other folks do not need to bother with | Wine anymore. | | /s, obviously. | aseipp wrote: | Please take the crybaby shit to Slashdot or something, | man. It's not a good look. | meddlepal wrote: | There's definitely a few quirks. My biggest annoyance right | now is https://github.com/microsoft/WSL/issues/5762 . | | Note this only impacts calling the Linux go toolchain from | the Windows side (via the /$wsl/ path). Its not an issue | inside WSL... but it comes up when you want to say configure | Windows IntelliJ/GoLand to use the Go compiler hosted inside | of the WSL VM. | | > When you say "proper Linux distribution", I assume that's | still CLI only? Do you develop with e.g. emacs, vim on WSL, | or do you have some IDE with remote running and debugging | into WSL? Or have a missed a trick and in fact X/Wayland | applications can be run on WSL? | | You can run X apps just fine in WSL2 as long as you have a | display server running on the Windows side. I use X410. | Important to note, Microsoft is working on native Wayland | support long term. For what it is worth, I run | IntelliJ/GoLand from inside of WSL and use X410 to render the | GUI. This works great. | 600frogs wrote: | Your set-up sounds exactly what I'm after - from my comment | to a different reply: | | > I think my end goal is to have a contained development | environment whilst not being forced to use specific tools | (i.e. VSCode remote debugging, eugh) and not sacrificing | compilation times by running in a VM that's too slow. | | Are there any other gotchas to working like this? As it | happens I'm a go dev using GoLand so your go-specific | issues are of interest to me. I'm not too bothered about | not being able to use Windows GoLand as I'd be just using | it from WSL2 anyway, but I'd be interested to know if there | are any other pain points. Any issues with VPNs, if you're | using them? | meddlepal wrote: | I haven't tried a VPN yet, but I have heard of some | possible quirks due to how the networking is handled | between Windows and Linux in HyperV | | Edit: Im switching from Fedora to a WSL setup for work in | the next week. Ill report on issues I encounter in that | migration. I suspect VPN will come up because one of the | key reasons im switching off Fedora to Windows+WSL is due | to corporate VPN requirements. | 600frogs wrote: | That'd be super great if you could let me know how it | goes, I'm tempted to make the same jump. Thanks! | meddlepal wrote: | I'll reply to this comment when I do know | running101 wrote: | This is the fix for vpn and wsl2 been running this for 6 | months no issues. https://github.com/sakai135/wsl-vpnkit | tyingq wrote: | There's this for running systemd inside WSL2: | https://github.com/arkane-systems/genie | abdusco wrote: | It's not full-on systemd, but you can run init scripts on WSL | startup as of Insider Build 21286. | | https://blogs.windows.com/windows- | insider/2021/01/06/announc... | Tenoke wrote: | >When you say "proper Linux distribution", I assume that's | still CLI only? Do you develop with e.g. emacs, vim on WSL, | or do you have some IDE with remote running and debugging | into WSL? | | VScode directly connects to WSL. You can open folders/files | with 'code <folder>' from the WSL terminal, save, run | whatever from VScode etc. | | As for Docker, you can also use the GUI from within Windows | that automatically connects to WSL but admittedly I almost | never use the GUI. | 600frogs wrote: | I did try VSCode remote running and debugging, but found it | fiddly to work with and half-baked. Plus, I was sorely | missing IntelliJ, so I quickly stopped trying it out - | maybe I'd get used to it eventually, but it didn't seem | worth the onboarding cost. The RDP and X410 solutions | suggested in the replies to GP seem solid though. | nickjj wrote: | > I assume that's still CLI only? | | If you install an X server on Windows you can run graphical | WSL apps. It runs really well too. Years ago I used to run | Sublime Text straight from within WSL. | | I've been using WSL / WSL 2 for a few years now for full time | web development. A while back I made a video going over all | the tools I use and how I have Docker, WSL 2 and a bunch of | other things configured at: | https://nickjanetakis.com/blog/a-linux-dev-environment-on- | wi... | nwatson wrote: | I run VcXsrv X-Window on Windows (Multiple windows mode) | and then from WSL2 Ubuntu I've run e.g. "terminator" and | Jetbrains CLion C++/Rust GUI, Linux Version "~/bin/clion.sh | &". It works very well. | nickjj wrote: | Yep, that's what I cover using in the video linked above | too. VcXsrv is so good. Nowadays I mainly use it to share | my clipboard between WSL and Windows so I can use native | Linux tools that copy to the clipboard without resorting | to any hacks. | ogre_codes wrote: | It's not too difficult to get a Linux VM running on top of | MacOS on the M1. Then you can do whatever you want on your M1 | Mac and have a full Linux distribution in another window. | | Call of Duty is a whole other problem. | eecc wrote: | It's still a nightmare to run IntelliJ on the WSL mounts. | Vscode support is much better but it's support for JVM | languages is definitely a downgrade | easton wrote: | Have you tried JetBrains Projector? They have a special | installer for WSL that sets everything up, and then you | access the IDE from your local browser. It works very, very | well. | | https://github.com/JetBrains/projector-installer | cyberpunk wrote: | Am I the only one who, after installing some brew tool, every | bin in /opt/homebrew is immediately kill -9'd at launch, and | then I have to brew list | xargs brew reinstall? | | Seems to be some signing issue but it's only happened to me | twice and I didn't have time to properly investigate at the | time... | jki275 wrote: | As a daily brew user, I've never heard of that problem. | pkulak wrote: | It's silver... :D | | https://www.protondb.com/app/2620 | gh-throw wrote: | Huh. I've seriously used... I dunno, maybe five Linux package | managers, on workstations and servers alike, plus poked at a | couple others, and the only one I'd _almost_ rather use day-to- | day than Brew is Portage, but even that, probably not. | | I like having the system strictly separate from my crap, and I | think the UI is fairly good. The variety of packages available | out-of-the-box is outstanding. I miss it when I'm on Linux, | now, in a workstation-not-server context (yes, I know, there's | LinuxBrew, but the package set is much smaller and less well- | maintained). I started on MacPorts but got sick of it borking | itself every few months such that it was faster to nuke the | directory and reinstall everything than to figure out what it'd | screwed up _this_ time (granted, that was about a decade ago, | maybe it 's great now). | | Brew gives off all kinds of signals of being something I'd hate | (cutesy; a system tool written in Ruby; breaks with norms) but | I like it a ton. | regulation_d wrote: | Brew consistently upgrades things that shouldn't need to be | upgraded. I've spent more hours than I care to count fixing | broken Postgres installations which regularly get major | version bumps as a result of a completely unrelated install | or upgrade. | | I've never used linux as a dev machine, but in general apt | seems much more reasonable in this regard. My frustration | with Brew is pushing me to seriously consider a linux | machine, so if anybody has counterpoints here I'm definitely | interested in hearing about your experiences. | | I don't care that Brew "breaks with norms" I just care that | it breaks my shit. | ogre_codes wrote: | If having a specific version of a tool is important for | your work, it's probably best to install that tool separate | from homebrew and manage that install separately. The | Postgres docs seem to recommend the EDB installer. | | https://www.postgresql.org/download/macosx/ | | Likewise Python and other programming tools where running a | specific version is important are best managed outside | homebrew. | qubitcoder wrote: | Indeed. I've run into this multiple times. Something as | simple as "brew upgrade youtube-dl" could end upgrading | dozens of _unrelated_ packages, such as postgres--which | ends up breaking my local development environments. Perhaps | that's the wrong command to use, but either way, it's still | frustrating when it happens. | MuffinFlavored wrote: | Why don't the brew developers change this/add an | option/make it opt in? | fnord77 wrote: | this right here. When I instruct brew to install something, | I didn't instruct it to upgrade everything else. And I | didn't instruct it to do a 30 day clean up. | | apt and yum don't go doing things you didn't tell them to | do (usually) | vlunkr wrote: | Yes, Ubuntu/Debian are very conservative with their | updates. Especially if you're on an LTS release, so you're | unlikely to have something break from an upgrade like that. | Brew tends to be very up-to-date. | gh-throw wrote: | I think I must use it differently from how other people do. | I use it to install tools I'll use directly, so I | practically always want those to be at latest (or otherwise | don't really care what version they are). If I need | something at a particular version I'd use a container, or | install it manually in some isolated folder, or something | like that, since odds are if I need something at a | particular version I'm going to need it at _multiple_ | particular versions and to be able to re-create the | installation on other environments. | | So I end up with: | | System -> Apple-managed | | My tools, as in programs I personally use -> pretty much | entirely Brew, in fact I think on my current workstation | this category _is_ 100% brew-installed | | Dependencies of anything I'm working on -> some language- | specific version manager (which itself is may be brew- | managed, actually) plus containers or VMs with scripted | installs, probably. | | On linux my experience is typically more like: | | System -> package manager | | My tools -> package manager, plus some sketchy extra repos | that I hate to add but do anyway because I don't want to | screw with manually updating things, plus several things | installed manually, plus a bunch of things on older | versions than I'd like but not worth the trouble/risk of | finding some way to upgrade without it being a PITA. | | Dependencies of anything I'm working on -> some language- | specific version manager (almost certainly not available in | the distro's official repos) plus containers or VMs with | scripted installs, probably. | | So for _my_ use, Brew cleans up the "My Tools" workflow | very nicely compared with Linux, excepting, kind of, my | days back on Portage/Gentoo, which of course has its own | problems. | mnahkies wrote: | I don't quite understand your argument. I use my distros | package manager in a very similar way to how you describe | brew for my tools, and also use containers in the | contexts you describe. | | Only difference I see is that my containers are running | natively (eg no VM in the background) and that I've not | had any random errors from my package manager in years. | Not sure what brew is like these days but last I used it | the experience felt like a half baked apt/yum to me (3+ | years ago though) | gh-throw wrote: | GP and a sibling comment (quote: "Something as simple as | "brew upgrade youtube-dl" could end upgrading dozens of | _unrelated_ packages, such as postgres--which ends up | breaking my local development environments.") seem to | describe using Brew to manage dependencies of | applications they are developing, which I _do not_ do, | and wouldn 't do with a Linux workstation's package | manager either, so I never have those problems. That's | what I was pointing out. | | For me, Brew is for managing my personal software I use | that doesn't come from Apple. Project dependencies, | including the version of the compiler or interpreter for | the language you're writing, don't belong brew-managed in | most cases, which seems to be what's tripping people up | when they try to use it for that. | | Yes, containers run better on Linux because they're | native. No quibble there. I just find I'm much, much | better able to cleanly manage my personal software (not | project dependencies, which, again, I wouldn't try to | manage with my workstation's Linux package manager, | either) with Brew on macOS than in any Linux distro I've | used. 99% of what I ever want to run (outside the base | OS, and project dependencies) is on there, available at a | single "brew install", after I do nothing more than | install Brew itself, versus 50-95% on Linux (depending on | the distro), where I find myself adding all kinds of | extra repos and installing one-offs a variety of ways | just to get to a baseline level of having all the stuff I | need at new-enough versions. And the interface is above- | average, in my opinion (but again, Portage/Emerge is my | favorite package manager on Linux and maybe the only one | aside from Void's that I've found _pleasant_ to use, so I | may just be weird) | cromka wrote: | Yeah, let's talk about how brew still can't just remove the | leftover dependencies or uninstall a package with its | otherwise unused dependencies without some extra command or | hacks. | mikemcquaid wrote: | 'brew autoremove' does this. | cromka wrote: | Is this new? I swear I searched as recently as last week | and the only thing that came up was "rmtree" and the | "brew bundle dump && brew bundle --force cleanup" | workarounds. | geoelectric wrote: | brew might have a discoverability challenge. I've been | installing an rmtree helper to do this for years and | didn't even know it was an option to autoremove them. | jbluepolarbear wrote: | As a casual user I like Brew. As a long time mac developer | and private cask maintainer(no longer thankfully), I wish | there was something close to what the Linux ecosystem has. | rconti wrote: | As a casual user (install something once every 6 months), I | can't even keep brew's insane terminology straight. If I | was a REGULAR casual user, I'm sure it would be fine. | Eugr wrote: | Have you tried MacPorts? | jbluepolarbear wrote: | I tried it, but everything required sudo and that wasn't | an option at the time. I primarily develop in Windows(on | a Mac) now because Unity runs much better on windows than | Mac OS. | dumpsterdiver wrote: | I've never found it reasonable to virtualize on Apple systems. | Apple optimizes for security, specificity, and bubblegum | usability. | | Technical limitations aside, from a security perspective it is | not a good idea to run servers on the same system that you write | code from. I humbly suggest taking the time to push code to your | dedicated Linux server, otherwise you might inadvertantly be | putting your company out of compliance by exposing your dev | system on any given network. | sigjuice wrote: | Docker is for running Linux apps. I honestly don't see the appeal | of abstracting away the Linux VM via Docker for Mac, especially | if it has issues like filesystem performance. I have been running | docker inside a Linux VM in VMWare Fusion on my Intel MacBook. | Surely it would be possible to just have a plain Linux VM on an | M1 Mac and run Docker inside it? | ogre_codes wrote: | The big thing Docker solves is repeatability and isolation. If | you create a Docker instance on your Mac, you are more or less | guaranteed it will work the same in production. | | If you were to create a Linux VM to replace Docker, you would | need it to also recreate the Docker build tools for that VM so | you could recreate that VM on the server. At that point, you've | more or less come full circle and essentially recreated Docker. | sigjuice wrote: | I am not creating a Linux VM to replace Docker. | | I have a Linux system (the VM). Docker is installed on that | Linux system and I do all docker related work on the Linux | system. | sarabad2021 wrote: | Yes, this is really the only way to tolerate Docker on a | Mac. Basically it's the same thing WSL does on Windows. | Linux in a VM then you run Docker in the VM. Not many | people talk about doing it this way though. | ogre_codes wrote: | Ah, obv I misunderstood your above post. | | Makes a ton of sense. It's been a while since I used | Docker, but I'll have to try it out next time I'm using a | container setup. Particularly since HyperKit seems to make | running a VM so straight forward. | mistyfud wrote: | I recently left the Mac ecosystem and bought myself a System 76 | laptop. I do a lot of server-side development and running Docker | at native speed is a big productivity boost for me. I really do | hope they get this sorted out, it's a great technology that has | measurably improved the local development experience. | | I wonder if services like https://garden.io/ will see more | business as a result of these issues? That or more folks will | move to Windows or Linux as their primary development machine and | reach for cloud-based Mac environments when they need to develop | for Apple? | ryanSrich wrote: | I've been using the experimental version for a while now and | haven't run into any issues. Glad to see a release candidate. | b1gtuna wrote: | I wish there was CLI-only version of the Docker Desktop. I can't | even launch Docker Desktop unless there is a monitor connected | and a user logged in. | qbasic_forever wrote: | Run containerd and buildkit in a vagrant VM. You'll have a lot | more control--you can pick what kernel you want (and even | upgrade it as necessary), you can expose host filesystems and | devices to the VM, etc. It's the same thing Docker Desktop is | doing behind the scenes but now you control the full stack. | sneak wrote: | At some point, Docker switched from being an open source, free | software company, to producing stuff like these Docker Desktop | apps that are a) nonfree, b) not even source available, and c) | contain spyware in them that report back to them your activities | in the app silently and without your consent. (On crashes, it | even uploads some of your network traffic in the form of pcaps.) | Most people didn't notice this shift, as Docker Desktop (the app | in TFA) still has a github repo, et c. It just doesn't have any | source in it. | | Not being open source I can't easily tell _what_ sort of data it | uploads during usage (but I did inspect the crashdump it uploads, | and HOOOO BOY is it a fuckton of sensitive data about your | running system), so being someone who usually works under NDA, | even installing this on my machine is a liability risk, as it | could transmit information about my customers. | | You're better off using the actually open source docker command | line client (installable from your favorite package manager) and | setting DOCKER_HOST in your environment to something like | "ssh://root@remotehost" (set up ssh key auth first, and install | the docker daemon on remotehost) which will serve you a lot | better, with the added benefit of running at full, non-emulated | speed (and pulling images/packages/pushing/etc will happen from a | datacenter pipe, not your puny leaf node on wi-fi). ___________________________________________________________________ (page generated 2021-03-19 23:01 UTC)