Now, after latest announcement (https://www.docker.com/blog/updating-product-subscriptions/), I've started to wonder is there any good alternative for Docker?
The Docker Desktop is just a GUI and some scripts to run Docker in a local VM. You can do the same manually or use alternatives to do the same, like Docker machine (now deprecated though). Better GUI and tools will probably appear soon.<p>The Docker Registry is already easy to replace. The API is not complex and almost everyone is providing a Docker Registry as a Service. AWS, Gitlab, Github, Azure... You can also self-host it but I would not recommend that.<p>To run Docker in production, you can use Kubernetes.
I guess Podman[1] - I swapped to using that instead of Docker on my Linux servers a while back and it's definitely working well.<p>[1] <a href="https://podman.io" rel="nofollow">https://podman.io</a>
I've been using Minikube's docker-engine and haven't missed DockerForMac for some time now.<p>Minikube sets up a Linux VM using MacOS Hypervisor.<p>It even has a convenience command to configure docker-cli/docker-client.<p><pre><code> $ minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.65.11:2376"
export DOCKER_CERT_PATH="/Users/wibble/.minikube/certs"
export MINIKUBE_ACTIVE_DOCKERD="minikube"
</code></pre>
For corporate situations where MITM proxies are used, you can inject/trust custom CAs using<p><pre><code> $ minikube start --embed-certs
</code></pre>
<a href="https://minikube.sigs.k8s.io/docs/handbook/untrusted_certs/" rel="nofollow">https://minikube.sigs.k8s.io/docs/handbook/untrusted_certs/</a>
If you mean the Docker client, Podman comes to mind. Honestly though, if you don't like Podman, I'd recommend Minikube.<p>Then again, if you know nothing of Kubernetes, I'd stick with Podman (which has limitations on anything but Linux AFAIK). You might create wrappers around runc [1] if you really wanted (wouldn't recommend) or containerd [2] (no personal experience on my part).<p>If you mean the Docker registry, there are a number of alternatives, like quay.io or MCR.<p>[1] <a href="https://github.com/opencontainers/runc#introduction" rel="nofollow">https://github.com/opencontainers/runc#introduction</a><p>[2] <a href="https://containerd.io/" rel="nofollow">https://containerd.io/</a>
The docker registry is easy to self-host for development purposes (<a href="https://docs.docker.com/registry/" rel="nofollow">https://docs.docker.com/registry/</a>). Securing it for production is another topic though.<p>If you use Kubernetes you can self-host the registry and use Harbor (goharbor.io), it supports security scanning of images and can sign them too.
On macOS you can always run things in a VirtualBox VM if you're only concerned about Docker Desktop, not Docker itself.<p>Here's a convenient installer for that:
<a href="https://github.com/dziemba/mobymac" rel="nofollow">https://github.com/dziemba/mobymac</a><p>It does however have some rather annoying limitations. Also no Apple Silicon support.
The docker daemon is easy to install on any *nix. Docker desktop doesn't really actually do much.<p>If you're on Windows, you'll need WSL. Enable remote daemon access on the internal IP, then install the CLI (scoop or chocolatey) and set your default context to your WSL instance.
Nix and Guix (my preference) are good alternatives. Guix, in particular, has its own system/application containers (not runc compatible). Highly efficient since they are essentially composed of symlinks of individual items in the Guix store.
I've had a bit of a play with Singularity containers and thought they were quite cool. Popular in the science circles but not so much anywhere else. I wonder why.
Has anyone tried <a href="https://cloud.google.com/container-registry" rel="nofollow">https://cloud.google.com/container-registry</a>?<p>Seems cheaper than docker