Free Docker Desktop Alternative For Mac And Windows

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
can we get docker desktop features without having docker desktop do we have an alternative to docker desktop now that under certain conditions we might be forced to pay for using it somewhere around september 2021 docker announced that uh depending on conditions and the number of users and who is using docker desktop we might have to pay five dollars or more per user so i wanted to explore the alternatives to using docker desktop now before we proceed let me say that i do think that we should be paying for software that provides business value that helps us in our business but there are cases where we might want to opt for free alternatives and i would like to explore what those alternatives are and why would we look for those alternatives in the first place well maybe you don't want to pay five dollars per user or even higher depending on what you're looking for maybe you do not need all the docker desktop features that are for paying customers and yet you would have to pay anyways and so on and so forth there are many reasons why you might want to look for a free alternative one of the reasons might be that you want to invest that money by joining this channel and supporting this channel so that it can continue thriving and so that i can pay the bills that could be a reason as well anyways before we explore the alternatives let me say what are my requirements for a potential replacement for docker desktop it needs to be able to run containers that's kind of obvious it needs to be able to build and push containers to register it would be nice even though it's not a requirement but it would be really good if that replacement can also run a kubernetes cluster so that i can have one tool for everything container related locally you know run containers even though i'm not running containers directly much anymore build container images and run kubernetes cluster in which i'm going to run containers and here comes the most important one i do not necessarily want to change my habits so i would like that alternative that replacement of docker desktop to look and behave in the same way as docker desktop itself i do not necessarily need the user interface i'm never using it really but i do want the commands that i'm commonly executing to continue existing in the same form those would be like docker image build docker image tag docker image push maybe docker container run and a few others since this is about replacing docker desktop with something else i'm going to exclude linux because docker desktop as far as said no never worked or never existed for linux so this is mostly a story about windows users or mac os users especially macos users because in windows you can actually run wsl which gives you a linux subsystem and you could actually pretend that you're on linux and then everything would more or less work and in that case i'm not sure whether you would need docker desktop anyways but even in those cases you know when you're running linux or maybe wsl windows subsystem for linux even in those situations i think that docker desktop is a great solution simply because it creates a virtual machine so i can easily destroy everything i did instead of hunting down individual containers and trying to figure out what is still running what is not running or so i think that the lightweight virtual machine is actually a very good thing even when we are not required to use it so the first potential solution would be hey i could create my own virtual machine as long as i have docker over there and i could connect from my terminal to the docker running in that machine i would get more or less the same but that might be too much castle uh i just want something simple i just want something transparent so i'm going to exclude the option of creating my own virtual machines even though i do think that we need in some form or another virtual machine for all this to happen just as docker desktop is using a virtual machine even though you might not be aware of that i will exclude immediately solutions like kind and k3d for running kubernetes clusters first of all because they provide only part of the story they would not solve the need to build container images and push them and do whatever we are doing with container images and on top of them they do not work without docker engine and for docker engine we need a virtual machine so we are back to the very beginning so kind and k3d are out of the picture i could start using builder and podman but that does not give me the same feeling and the same experience i have with docker and i really really really like the experience of using docker cli so i want that experience to stay that means that podman and builder are out of the picture i mean they could be made to look and feel like docker but again it's too much work involved i want something extremely simple and i can continue excluding solutions that simply do not fit my needs but i'm going to jump straight into what the solution is and that solution is mini cube minicube can be complete replacement of all the important parts of docker desktop it is not a full replacement it will not give us everything that docker desktop has especially not the ui and a few features related with security and users but the common functionalities that we do with docker like building images pushing images running containers and potentially running a kubernetes cluster in docker desktop that's all provided with mini cube as long as we set it up correctly and that's what i'm going to show you in a moment but before i do let me quickly explain how docker works in general a simplified version just in case docker is client server type of architecture we have a client which is a cli that's docker you know whenever you execute docker something command you are using the cli and that cli is sending instructions to the server to the engine running somewhere and that somewhere can be a vm on your laptop it could be even directly on your laptop if you're using linux or it could be a real server somewhere else so there is always that client server communication and we need to solve both actually we do not need to solve both because the cli is free it is open source you do not need to pay anybody anything to run docker cli and you do not need to pay anybody anything to run docker engine what you are paying is for a package you are paying for docker engine running in a vm and having a few additional features which i'm going to exclude for now because they are not really critical so we need a client and within an engine running somewhere client is free you can just go and install docker i will provide the link in the description and you have the client solved for the server part for the engine part we need two things we need to install mini cube and we need to install hyperkit actually hyperkit is not a requirement you can run minicube in many other modes but for the purposes of this demo i will be using hyperkit so three requirements docker cli mini cube and hyperkit install those the links are in the description now assuming that you installed all that first thing i'm going to do is confirm proof to you that i do not have docker desktop running or anything of the kind by executing docker container ls i'm going to try to list all the containers and i'm getting an error saying hey the client cli cannot communicate through the socket with the docker engine so nothing can be done and that's the thing that we need to solve if we solve that communication if we manage to make docker engine running we can continue using the cli in the same way we would be normally using it with docker desktop as long as we solve that one problem so let me start minicube by executing minicube start and i'm going to use hyperkit as a driver remember you can use a different driver even though i really recommend hyperkit now the key here is in environment variables docker cli knows how to talk with docker engine through environment variables i mean there are different ways to do it but environment variables are the most common ones so if you can tell docker cli how to communicate with docker engine that is right now running in the mini cube that we started we will have the solution fixed it will all work so the key is in the environment variables and luckily for us minicube already provides those variables we can execute minicube docker dash env and let's see what we'll get there you go those are the environment variables docker cli needs to know how and where to find the engine but that command just output those variables on the screen so what we need to do is evaluate that output and now the variables are all set they are exported and the time has come to test whether docker cli works correctly so let's try it out let's start with listing all the containers you know the command that i executed a few minutes ago and the one that failed and this time the output is not an error this time i got all the containers those are all the containers currently running in mini cube now let's see whether building an image works by executing docker image build and then the tag and dot that points to the current directory that worked as well success next let's see whether we can run containers and the command is docker container run etc etc etc and we can see that the output is as expected with the message is it working yes it is working and the last thing i want to double check is whether i can use docker compose so docker compose up i want to run it in detached mode and then i need to wait for a few moments waiting and waiting and waiting and there we are similarly i can destroy everything i created with docker composer there is probably no point continuing and verifying all the commands they will work all docker commands will work as long as there is a docker engine running somewhere and it is running in the vm created by minicube and it is accessible through the environment variables that we get from minicube as well the last command that i executed you know to run containers and to use docker compose i do not think that you should ever ever ever use those and i know that now you're saying hey i like docker compose it's so fantastic it's so easy and it is fantastic and it is easy but since you're most likely going to run those things in production in a kubernetes cluster then it's same effort or actually less effort to run it as kubernetes manifests you know just do cube cattle apply against the same manifest that you're running in production maybe scaled down version of those manifests so i would not really recommend that anybody should run directly containers or use docker compose when you already have the manifests and you can just as easily run things in kubernetes and with minicube you have kubernetes together with docker engine so you've got not only docker engine but you've got kubernetes as well which is yet another thing that docker desktop provides everything that really really really matters is the ability to have docker engine and now we have docker engine in minicube and assuming that you're comfortable with the cli and you do not need the ui that docker desktop provides and maybe a few features that are very important for companies but not for individuals then mini cube is just as good and in some ways maybe even better than docker dust all that being said i think the docker desktop is fantastic and i think that you should be using docker desktop and it continues being free for individual users and it continues being free for small companies and only big companies like over 250 employees and more than 10 million in annual revenue need to pay something and i think that that's fair but if you do not agree if you want a free alternative it is extremely easy to get it minicube is the free alternative to docker desktop it is free it is open source you do not need to pay anybody anything even though that does not mean that you shouldn't support docker and while speaking about supporting something i suggest that you support this channel there are membership options now go and check them out it's a very low monthly fee that would help this channel continue existing because believe it or not there are expenses that are required for this channel to continue to operate there's equipment there are people that need to be paid to do the editing and animations and so on and so forth so i'm encouraging you to support this channel by checking the join button that is below me if you can spare a few bucks i hope this was useful thank you for watching see you next time you
Info
Channel: DevOps Toolkit by Viktor Farcic
Views: 13,455
Rating: 4.8684931 out of 5
Keywords: docker desktop free, docker desktop, docker desktop alternative, docker desktop replacement, devops, devops toolkit, review, tutorial, viktor farcic, docker desktiop free, docker desktop mac, docker desktop mac m1, docker mac, docker desktop windows
Id: LGNEG-t96eE
Channel Id: undefined
Length: 13min 10sec (790 seconds)
Published: Mon Sep 20 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.