An Overview of Docker Desktop Alternatives
matt-rickard.com
matt-rickard.com
Companies paying for developer tooling is good for the ecosystem.
From engineer's perspective the difference between a free tool and a "small fee" (in most companies) is not money. It's the fact that you now have to jump through provisioning hoops and ask for permission to use the tool. The difference in flexibility is enormous.
This is all based on open source, so I’d expect there to be many new alternatives within weeks. And workflows for existing tools/interfaces will probably be detailed in blog posts by the weekend.
Most people on this thread are not commenting on lack of business model, rather that they “don’t want to pay”.
100%. That’s why these threads shitting on Docker bug me.
FAANG (especially Google) have a tendency to take inspiration and rewrite the things that they find interesting.
Notably: Piper (very similar to Perforce) in google.
But perforce is a (mainly) gui thing and was not “safe” from reimplementation.
A deciding factor may have been that perforce is licensed software; but it could have just of easily been because google wanted better integrations. Both are true for Docker for Desktop
Not pay for Docker? What are they going to do? Get everyone on AWS tomorrow? The cost and downtime for most places would be massive.
So is the difference in cost to the business: if the fee is small per seat, then the big cost is the license administration overhead, not the license fee, so the induced cost can be much greater than the revenue the seller realizes.
And yes, the company could pay, it's just they don't want to.
Just an example, I need to vent: I wrote a program that pilot all the lights in the company. To my great shame, it was failing spectacularly despite hours spent debugging the thing.
I received a lot of criticism about my coding skills.
Until I convinced him to buy pro dedicated hardware instead of cheap Arduino knockoffs to be the interface between my program and the light switches.
It's working like a charm since 2010.
I sometimes worry that we've gotten too used to free things, whether those things are youtube videos, articles by journalistic institutions or pieces of software. I'm hardly an exception here -- I too wince when I see a paywall in front of an article, but people need to be able to sustain themselves when they create things that benefit others. It's hard the reconcile the paradox of wanting high quality things without paying for it.
If docker desktop was originally subscription based or they said that they wanted to make it subscription based later than the reaction would be very different.
But Docker as a company has failed multiple times now to attempt to make money and this feels like a hostage situation by taking away a tool that many now rely on.
They tried to go the support route like RedHat and others, but who needed just Docker support? Especially when there orchestration layer was basically DOA with k8s available.
Last year (?) they started limiting pulls from docker hub unless you paid up. Which spawned companies like AWS to announce their own free alternative/mirror.
At some point with in the last few months they made it so without paying I was forced to update docker desktop or constantly have to click snooze. I was perfectly happy with what it was currently doing and had no desire to update. But they added that artificial limitation after release.
Now they are charging for something that was once free without really explaining any benefits?
I think the reaction is perfectly valid given the companies track record.
There are likely other examples they have tried but likely just didn't notice. Since Docker is in a situation where docker itself is just not what most of us really think about. It is the orchestration and docker is just a path to that.
Edit: Also not super enthused about the idea that I now need to ask during a job interview what software I will be able to have locally for part of my workflow.
It was free when they could afford it. Now it’s not, because they do indeed, need money. Why is that so wrong?
Seems to me that a value-add tool makes sense to commercialize. It doesn’t provide a large array of features yet, but this funding will help with that.
If you don’t find it useful enough for the fee, clearly you’re better off with CLI or alternative GUIs.
I know for me I install it, let it do its setup, and then I do everything from the Docker CLI as if I was on a linux machine.
It has k8s built in if you want to add that also.
We are not talking about a tool here that needs a ton of functionality. But they have become (seemingly at least) the standard tool to have a more consistent Docker setup on Mac or Windows compared to where it will eventually be deployed (Linux). Once you have it setup you should be using the CLI.
I feel like they are severely overestimating the software, I am anticipating several open source alternatives to quickly become available since it wouldn't (or shouldn't) change your workflow at all to put in another alternative.
Edit: TBH I often forget docker desktop is sitting there until it starts asking me to update... so this is a perfect opportunity to replace it.
Of course, they’re not charging individuals, so I’m not sure why you’re complaining.
That is not because I am not using it, but I am indirectly using it by working with the Docker CLI.
What it does is very valuable, but it is a perfect candidate to be replaced by an open source alternative as long as I can continue to use the Docker CLI.
It is, however, much easier to say it of a service that has a history of flailing around about how and what they want money for than one that has a consistent history of not being surprising.
But honestly, we already knew this about Docker. They’ve always had issues trying to figure out their business plan.
IntelliJ and Visual Studio are doing perfectly well.
Maybe not every tiny little tool should be a subscription.
(yes, docker is a tiny tool compared to, say, linux, or kubernetes)
On the other hand, we’re developers… so many of us like building our own tools. Why are there so many options for text editors? Depending on the type of tool, it might just be easier/fun to build your own tool.
It is possible to make money in FOSS, but you really have to get the business plan right from the beginning. It’s a hard business to be in.
If you haven’t read it, “Dreaming in Code” by Scott Rosenberg is a great story about just how hard it is to make a successful FOSS project, even for experienced teams. It details all of the ups and downs of the Chandler project from the early 2000’s.
Absolutely normal business strategy.
Now, the answer to that question exists. It's no longer free, which was the primary reason anyone just kept using it when (especially today) it doesn't offer much over alternatives.
That’s an oversimplification of the issue.
I really don’t care about the small monetary cost. I do, however, care about adding yet another recurring license fee to my already long list of recurring charges and licenses to manage across the team.
It’s not necessarily Docker’s fault, but I think many of us are experiencing a lot of SaaS fatigue with the ever-growing list of services and plans and recurring charges that need to be managed.
Evaluating alternatives isn’t just about dodging a nominal fee. It’s about avoiding yet another recurring overhead and associated hassle, however small, that comes with every additional subscription.
Dealing with expenses is part of running a business. Sure there's a lot, but that's part of it.
I don't really care about your $25/month Wiki/Container/Notes SaaS as much. If you raise the price anywhere along the subscription chain, this little frog is going to jump out long before you start boiling the water.
My experience procuring SaaS (or even just self-hosted software licenses) is that there's a very different process for those than there is for sandwiches or janitorial staff. The engineers are always involved, but the negotiation process is arduous _every time_, and requires looping in the procurement team, who is essentially paid by how much of a discount they get off of sticker. So there I am, trying to run a suite of services for the company I work for, and every renewal is an existential crisis where the procurement team plays chicken with the vendor to see who will crack first in the negotiation, all the while the license expiration for my service is creeping ever closer. I've suffered large production outages because of this dynamic, and I'm tired of it: it's a totally avoidable risk, and I view part of my value to my employer as helping them avoid totally avoidable risks.
So, I tend to go for open source or "bundled" solutions (like AWS) where I can avoid this process. I suspect this is what GP was getting at.
Docker Desktop for Mac simply sucks. It starts slowly, has slow UX, burns CPU all the time even when not active and no container instance is running. They recently added that "you have to upgrade now" popup and it feels updates are more frequent. I might be biased here due to poor UX with the popups, updates were smoother before. If I'm to pay for it, I really would like to have better experience using it. I can run VSCode, IntelliJ and Firefox with dozen of tabs open and my mac isn't as hot as when running docker desktop.
You can’t compare Docker between OSes, and blame Docker after you chose to use an OS that doesn’t support the necessary primitives.
When was the last time it asked you for the system password to update, though?
I think they botched it because mine just doesn’t update anymore. It keeps asking and I press “Install & restart” but it doesn’t do anything!
Docker shouldn't be charging anyone for that inconsistent experience.
The Docker Desktop client obviously is useful for quickly setting up and interacting on macOS and Windows graphically, but is Docker still relevant for the server? It seems like Docker Swarm never took off and everyone just uses Kubernetes anyway.
Step 2) Get millions of people aboard
Step 3) Clamp down, raise prices, make people pay for their mistake of relying on 'free' services/products.
If you change Step 1) to Subsidize services, then you get Uber/Lyft. This also applies to drug trading (first time is free!).
It gives unfair advantage to companies that have deep VC-lined pockets and a huge pool of money to spend. It raises the critical barrier for the small-guy to compete in this landscape. It also makes it easy for these companies to wipe out competition by undercutting them. This is just cheating.
What they said then about the community and future was this:
> Moving forward, we will expand Docker Desktop and Docker Hub’s roles in the developer workflow for modern apps.
Problem is, that i don't see anything really improving. It seems that they are cashing in, no?
The license fee is really not an issue for me - but continuously having to adjust my workflows when Docker Inc decides to change how things work on the back-end is an issue, and it's much more expensive for me than the license.
Yet, here we are. Lots of complaints, but no real understanding.
Choice and competition are good. Companies taking a scorched earth approach with extended "free... for now (because we've got the runway to do it)" business models are bad for the ecosystem.
Docker started back before the container orchestrator wars and the rise of Kubernetes. They couldn't have predicted that or the popularity of their services and tools.
They then had the enterprise Docker edition and swarm along with UCP which at one point looked like a reasonable path to monetization.
It was only after selling the enterprise software arm to Mirantis, which isn't that long ago really, that it would have been likely that their end game was charging for the Docker desktop product.
As to current support, well if you're just using minikube, you don't need Docker Desktop, so this isn't a problem :)
Also without paid developers maintaining Docker Engine, there would be a nasty situation next time there was a security issue in it and the millions of installs were unmaintained.
> a well supported Docker company
The ecosystem doesn't depend on Docker Inc now. And how do I benefit from the brand?
I want something a lot more like minikube or preferably buildah/podman. So this is a natural moment to ask if I can get the thing that I really want and incidentally avoid spending $1000/year in licensing which is not nothing.
Let me tell you what the problem is. This is the Darth Vader business model: "I have altered the deal, pray that I don't alter it further".
The reactions didn't start today.
First, features that could decrease their lockin tend to linger in limbo forever. For example, the ability to have mirrors. This works, but _only for dockerhub_. Isn't that odd? There are even pull requests proposed ( * )
https://github.com/moby/moby/issues/18818
Then there were the Dockerhub changes. Those are understandable, it must be a heavy money sink to maintain that service. Want to keep using that registry? Pay them. This is a fine arrangement (but note that dockerhub has special status, as you can use it without specifying the registry, and it can be used a a mirror). Still ok though.
More recently they changed Docker Desktop to not allow skipping updates if you are not paying them. That was the strangest "feature" ever. Don't want to support? Say that's the last supported "free" version and stop providing updates after a certain date. But this "you can only choose NOT to update if you are pro" was weird.
And then there's this.
They have been trying and failing to extract a working business model out of their technology. So instead of trying to offer something that would entice people to pay, they have started to cripple their product for the ones who don't pay, just to get back to the same feature level they had before.
Can they do that? Of course. What else will they decide to do in the future though?
( * ) Maybe this would be a Docker Pro/Team/Enterprise/whatever feature? Ok cool. This would make my life easier to try to pitch buying it. Mirrors would improve stability. Maybe some fancy local caching for K8s clusters so they would avoid pulls if another machine has pulled an image already? Give us something that will save time or money or improve stability and I can pitch to management. Right now? I see no reason to pitch pro/team/business as most of their stuff we don't care about. And maybe don't conflate Docker, the software, with DockerHub?
More recently than that, they changed it back to allow skipping the updates for free after all.
> So instead of trying to offer something that would entice people to pay,
Like a convenient desktop-based virtualization layer that allows running Docker containers on Mac and Windows?
> they have started to cripple their product for the ones who don't pay
You mean like how Linux software doesn't run on Windows and Mac natively? Weird.
That being said, while I’m not a first person knowledge on the reasons, the company I work for would not accept the licensing terms. What exactly the issue is, I don’t know, but I know a lot of effort has gone into prepping to mitigate this change and move the company away from Docker as a solution.
In the end, I’m guessing the biggest misstep here is the terms included in the new agreements, not the price.
I'd love a maintained, packaged solution, but it looks to me that I still have some configuration to do with minikube to set up a virutalization driver etc..?
Everything Docker Desktop does, without the bloat of the Desktop app ;)
Most of the size of the app bundle is the image for the virtual machine it uses to host Docker. By comparison, the GUI bits are quite small.
"To everyone in the NeXTSTEP community (and it is a community) but also to @mattl I apologize for saying Mac OS X apps are files not folders."
It will fallback to VFS which is very slow.
Especially something like WSL2, which Docker Desktop for Windows uses in the latest releases. I know that is a VM (or similar) but the way it uses memory on demand, rather than reserving a huge chunk of your memory up front, makes a huge difference from a typical VM experience.
Disclosure, I work on Rancher Desktop.
While Kubernetes is present we want those components to use the fewest resources they need to.
On Mac, all of this runs in a VM and you can control the resources given to the VM.
[1] https://k3s.io/
> microk8s – a Snap distribution of Kubernetes. Only for Linux. Not sure why you would use it. Minikube has been far more battle-tested and is multi-platform, and doesn't require lock-in to a pseudo-package manager.
microk8s is available on macos, and works well from my limited testing of it
The issue for both microk8s and minikube is how to actually build the containers in the first place. With Docker Desktop or the Docker Engine on Linux, you can use "docker build" to build them. Without that, you need to install a separate tool to do the build (buildah/podman/generating tarballs by hand?) and then push it into a suitable registry or import it into Kubernetes.
This configures the Docker client to run against a "remote host", it does have some notable limitations. The `--publish` and `--volume` arguments don't work the same way, for instance.
For anyone who is interested in a Docker Desktop alternative but without the k8 overhead, there’s a head start here just waiting to be picked up and revitalized.
Granted not everyone can do this if they have a dependency on the Docker ecosystem, but as someone who just used Docker desktop to run and build containers on the cli or via Ansible, podman is nearly a drop in replacement. As a bonus, theres no docker bridge IP conflict I need to worry about.
Edit: Alternatively, this also looks comprehensive: https://dev.to/bowmanjd/install-docker-on-windows-wsl-withou...
Going the other way, WSL exposes a SMB share so you can browse the Linux filesystem. This would be via //wsl$
Huh, I hadn't realised that Minikube was available on Windows!
I use Docker Desktop on Windows, to make it easy to run Docker, Docker Compose, and Docker Swarm.
Does Minikube support these things, or only Kubernetes? If it's the latter, then of course it's not a drop/in replacement for Docker Desktop.
Aside from starting the Kubernetes cluster, you need to run `eval $(minikube docker-env)` which sets up the environment variables like DOCKER_HOST to point the client at the remote host.
> Some people, when confronted with a problem, think "I know, I'll use kubernetes." Now they have two problems.
And now Docker, Inc. has gone on to answer the "why" for us.
It integrates very nicely with https://tilt.dev/ also (another very useful tool for k8s related dev/test).
After minikube I wrote skaffold, which is a closer alternative to docker compose for Kubernetes with file watching and automated rebuilds and syncs.
There are other options that have a lower sticker price. But Docker Desktop's price isn't exactly high, and we've already got a lot of investment in Docker, knowledge about Docker, and related infrastructure such as testcontainers. So, after factoring in that we are still a company and do have to pay developers for their time, I concluded that, big picture, just giving them some money is the vastly less expensive option.
You need to download the Docker client somewhere, need to configure this client to point to Minikube's remote host (`minikube docker-env` helps here), and some Docker commands won't work the same (--publish, --volume).
Which Docker Inc. doesn't want to support anymore, saying that it was replaced with Docker Desktop and is now deprecated (since 2019).
> In closing, I think that the outrage over Docker's decision is far overblown. If you're an enterprise using Docker Desktop at scale, then you should be paying for support.
Sure. But Docker doesn’t want the enterprises to pay for “support”. They are turning something what not many people know how to viably and reliably replace into a paid product. The enterprises will essentially just have to “suck it up”.
This rapid decision about the Docker Desktop makes me think what is Docker the company going to do about Linux? Start charging for compose? swarm? The realistic goal must surely be monetisation on Linux, not macOS or Windows…
The article presents "Docker Desktop Alternatives", then says "Minikube requires a VM. False" but it looks like on the platforms being compared here (macOS and Windows, since Docker Desktop is only available there) it does use a VM.
Did I get this wrong?
https://docs.microsoft.com/en-us/windows/wsl/compare-version...
Well, actually...
WSL 1, Illumos/SmartOS/OmniOS's LX-branded zones [1], and FreeBSD's Linux Jails [2] all work without a Linux kernel by translating syscalls.
This is somewhat analogous to how Wine can run Windows programs without a Windows kernel.
Last time I was paying attention to it, Joyent's Triton product provided a Docker API-compatible interface to run Docker containers on their SmartOS-based servers. Looks like that may still be around.[3]
1. https://wiki.smartos.org/lx-branded-zones/
2. https://wiki.freebsd.org/Linuxulator
3. https://www.joyent.com/triton/computeFalse, kind can run on top of Docker Desktop on Mac, it does not require Linux exclusively.
https://gist.github.com/visualphoenix/1bfa6f05289902bf2858bc...
Basically installing docker desktop gets you seamless docker working on the wsl2 commandline - which is basically a linux experience at minimal performance hit. far far better than any VM.
However docker desktop has done a lot of tricks to enable you to run docker containsers from two or more different WSL2 distros seamlessly, as well as managing them from the windows command prompt. You can have a container started from windows with a windows bind mount, alongside a container from ubuntu with an ubuntu bind mount, and a container from fedora with a fedora bind mount all connected to the same docker network, since they are all running on the same daemon.
Out of curiosity, I partially reverse engineered what all they had done here, and it is a heck of a lot more involved then you expect. There is an awful lot of subtle things going on to help make things just work they way one would expect them to even in advanced scenarios like those. And I'm sure there is a lot more going on, as there was plenty I saw hints about but did not try to reverse engineer.
Admittedly I'm not a fan of this new docker desktop licensing change, But I think people underestimate the amount of work Docker Inc has done to make docker desktop work well.
Is Docker Desktop the only way out ?
I tried it as a test - im a die hard Fedora user for 20 years now. I have found it very pleasant ..especially on Windows 11 (which surprisingly seems to be inspired by Gnome)