Hacker News new | ask | show | jobs
by pid-1 1480 days ago
Docker for Desktop went from being complete garbage to a really nice product.

I think Docker folks are heavily focused on providing great local development experiences, which is a niche few other products are covering.

2 comments

What exactly does Docker for Desktop do? All it seems to me is a slightly annoying non-free GUI application I need to use docker cli from Windows or Mac.
Runs docker in a VM for you, abstracts that away, confuses the hell out of new and old developers alike.
> Runs docker in a VM for you

It depends:

  - the Hyper-V backend uses a VM for running the actual containers, which is a bit annoying because it just sits there and eats your RAM whenever it's on (technically you could enable dynamic memory for the VM, but i think it used to break)
  - the WSL2 backend uses the whole fancy new system that Microsoft came up with to, idk, attempt to embrace and extend Linux or something; far less annoying than Hyper-V but also has somewhat different approaches to setting resource limits (e.g. if you only wnat to give it 4 GB of RAM or 4 CPU cores so something is left for the rest of your system and doesn't slow down when you run docker build)
Honestly, Docker on *nix is a way better experience, but not everyone can run it for a variety of reasons (e.g. corporate policy or having the same PC for personal development and gaming).
Last year, our entire devlopment team switched to Linux for development. We ditched Mac and Windows. And we discovered something:

1. We were all spending 6-8 hours per week trying bending our host OS to work like Linux. Containers, package managers, compatibility layers, different autocompletes, etc... all do create work. All the adaptations to avoid running Linux also often don't work identically to the real thing (i.e. VM CPU & memory allocation vs. Linux container CPU & memory allocation, installing Postgres on MacOS vs Linux) so there's lots of little learning curves.

2. We spent a lot of time learning how to do things in Windows and MacOS that did not apply to production. Now all the learning "how to make x work" applies to development and production, too.

Incidentally, running Podman or Docker on Linux is a much better experience that the simulation via VM that exists on Windows and MacOS. Another plus is that containers behave for developers like they will in production, leading to better decisions about using containers.

> Incidentally, running Podman or Docker on Linux is a much better experience that the simulation via VM that exists on Windows and MacOS. Another plus is that containers behave for developers like they will in production, leading to better decisions about using containers.

This is probably the most important point and something that I can wholeheartedly agree with! On Windows, you get the occasional issues with bind mounts or file permissions (e.g. wanting to use a container that has SSH keys in it, but software complaining about 77X access, instead of 700, which you literally cannot change), or even networking.

Whereas everything "just working" on *nix is great.

WSL2 is basically a VM too, but managed by windows: https://docs.microsoft.com/en-us/windows/wsl/compare-version....
Hyper-V backend also runs Windows containers, and in that case Microsoft decided to have the same docker frontend that everyone uses was better than coming up with their own CLI just for the Windows containers part.

WSL2 is no different than using Virtual Box or VMWare, now shiiped by Microsoft instead.

As others pointed out, Linux Desktop is never going to happen beyond the usual 1%, other than Android/ChromeOS workloads.

Typing this from a Asus 1215B, probably the last GNU/Linux device that I will own.

And 2022 is still not the year of the Linux Desktop.

Many tried and went back to OSX die to the rough corners of desktop Linux.

It will probably never be the year of the Linux Desktop in the mainstream, despite many promising projects out there.

But for personal usage, Linux is more than acceptable - if you can grokk all of its pain points, that is. Linus Tech Tips did a few videos on the topic recently, it was painful but understandable to watch. Personally, Ubuntu LTS (or equivalent boring long term support distro) or something with XFCE is solid and really usable, especially if you intend to do programming, where things are weird on Windows sometimes.

Except for gaming. Proton still has a ways to go and Wine isn't optimal for that sort of stuff and neither Linux or OS X are worth supporting for many games/projects/software because they represent a small part of the total userbase. For example, in regards to games: https://store.steampowered.com/hwsurvey

  Windows 96.68%
  OSX     2.20%
  Linux   1.12%
Supporting any system that's not Windows for games would be like burning money. At that point, you might as well offer the game for free on those systems (if using an engine like Unity/Unreal/Godot, where builds are easy) but refuse bug reports on them, if you don't have the resources for that kind of support.
Typing this on a Asus 1215B that was sold with a Linux distribution and has already had a couple of LTS distributions since 2009.

Even though it was sold as Linux supported device, it had its own series of issues, with wlan driver being broken when Canonical decided to replace it for a less capable one taking 6 months to reach feature parity, nowadays GL is stuck at 3.3, although fxgl used to be able to do 4.1.

And then there is the whole issue with VA-API, and the workarounds to watch hardware accelerated video.

Hence why when this netbook dies, I most likely will stick to using GNU/Linux from VMs, which I have been doing with VMWare since 2010 in other computers, I don't recall the last time I went through the trouble of setting a dual boot system.

I've largely abandoned macOS for Linux when it comes to work stuff, but I still have a Windows desktop for games. That said, I've been very impressed by my Steam Deck. Windows 10 will probably be the last version of Windows for me.
I’m a happy user of Linux desktop, Ubuntu. I will never go back to anything else than some other version of Linux. I can’t stand OS X anymore. I can’t even remember when I used windows the last time. I must be an idiot.
Wasn't the main selling point of docker "no more VMs"?
That's true on Linux, where the container shares the host's kernel. On Windows, they need to create a Linux VM and run the Docker daemon inside it.
IMHO doing development work on any long lived environment (especially if also used for personal internet browsing) is a mistake. Embracing disposable VMs for everything has saved me so much time and headache - just scrap it and start anew. Then my personal compute space remains very simple and debris free.
> Embracing disposable VMs for everything has saved me so much time and headache

Yes, but wasn't the main selling point of Docker "no more VMs"? It solves the same issues, without the drawbacks of running virtual machines.

This is for macs where no container api exists to this day
It has something like a minikube k8s distribution and introduces some compatibility layer for systems without *nix hyper v or wsl
All you really need is "ctop", the "top" for Docker. You can view running and idle containers, start, stop, delete, view logs.

https://github.com/bcicen/ctop