Docker Desktop Alternative (Docker-CLI + Docker-Compose + Minikube + Hyperkit)
As we all know Docker-desktop is not going to be free for large organizations. As an alternative I was crowdsourcing steps from different articles. And here are is the composition for a minimalist user who uses docker to bring up dependencies in dev environment.
So, what is docker desktop?
Docker desktop is roughly a combination of Docker Daemon, Docker Cli and Docker Compose and a Desktop Gui Application to manage Docker. Out of these Docker Daemon and the Desktop application are what come under the new licensing requirement.
Why is it getting licensed?
Containers are something native to Linux. Mac and windows don’t support it out of the box. So, Docker desktop packages a Linux VM to run the containers. The daemon connects it to the host machine and helps in manipulating it. This part is complex and hence the license. Same is not required on Linux, so it is going to be free there.
Let us get Started
We are looking to replace the Daemon. Simplest solution I found was to use Minikube as the VM and Hyperkit as the Hyperviser.
Install the Minikube and Hyperkit
- Here is the brew command
brew install minikube
brew install hyperkit
Next step is to setup Docker tools
- Remove Docker Desktop, if you were using it. Here is a link to the instructions.
- Install docker cli.
brew install docker
- Install docker compose if you use it.
brew install docker-compose
These steps bring us the docker command line tools that you are already familiar with.
Starting the engine
- Start minkube
minikube start --no-kubernetes
#If you need kubernetes then remove arg --no-kubernetes
- Tell docker where to find the daemon
eval $(minikube -p minikube docker-env)
Using the docker
This part is just about doing the regular docker stuff.
For additional controls on running instance, use minikube with kubernetes.