Should We Replace Docker Desktop With Rancher Desktop?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
i need a way to build container images locally and run them in a local kubernetes cluster at least in the initial phase before it goes through ci cd pipelines and whatever else i'm doing i'm always looking for better ways to do that and this might be it [Music] let's explore rancher desktop as a potential solution for building container images and running kubernetes clusters locally can it replace docker desktop mini cube or whatever other alternatives we have right now a while ago rancher came up with k3s which is a brilliant kubernetes distribution used mostly on edge devices and that's not something that most of us need however over time rancher came up with k3d which is k3s running in docker however since mac os and windows users need docker desktop k3d is effectively k3s running in docker desktop and that's not a smart move because docker desktop is proprietary software it is not open source the components in it like container d and docker are open source but docker desktop is proprietary and you might need to pay license to use it depending on the size of your company the number of people working there and what's or not now there is nothing wrong in paying five dollars i think per user per month i support docker in data for they need to earn money they want to keep going i am interested also in free open source alternatives and rancher desktop might be one of them it is locally running kubernetes cluster it is built on proven projects projects that we know that work well which is container d k3s cube cattle etc etc and last but not least it has the ability to manage container images to build container images and to push container images if you combine those two management of container images meaning building and pushing and kubernetes cluster and both of those running locally we have most of the things we need for local development excluding some id like visual studio code in one of the previous videos i explored mini cube as a potential alternative to docker desktop which gives me just that it allows me to run a local kubernetes cluster and it allows me to run docker which enables me to build and push images and that was kind of a perfect solution but it has some downsides as well specifically it doesn't have a graphical user interface which you might or might not need anyways this time i want to explore rancher desktop as a potential alternative or a better solution to docker desktop or mini cube or any other solution that allows us to run local kubernetes clusters and manage container images so let's get going and see how it looks like to begin with i will go to the releases page of the project and download the binaries for my operating system which is darwin or mac os i will use dmg extoller you can do the same thing by just downloading the binary for mac or windows in any case go to the releases page get the release you want and install it or just move the binary to the pot and you will have run your desktop up and running and that's the graphical user interface there isn't much to see there it's very basic but there are a couple of good things specifically you can select which kubernetes version you want to use and that's awesome because your local kubernetes cluster can match the one running in production and the closer you are to production the better when working locally that's one of the things that you could not do in docker desktop you could not select which kubernetes version you want to use as a matter of fact kubernetes in docker desktop was never good because it was bundled with docker swarm and created some kind of strange monster but this is not the time and space i will speak good or bad about docker desktop what matters is that you can select kubernetes version you can tweak memory cpu and a few other things on top of that you can select which supporting utilities you want to install you can choose between helm kim and cube cattle if you already have those tools it will recognize them if you don't you can just check the check box and it will install them for you you probably know what helm and cube cattle are i mean if you're using components you must know what they are but what might be new is scheme so select kim make sure that it is installed because we are going to use it soon very very soon we can see the list of images that are available in that cluster i'm not sure you need that but hey there it is you can manage those images you can probably delete them or do something with them i don't think that part matters i don't think it's very useful what does matter there is kubernetes settings that the only part of this graphical user interface that i think might serve some purpose i might want to select kubernetes version and i might want an easy way to install the tools i need which is help cube cattle and mysterious tool called kim now there is one potential issue in some cases kubernetes cluster did not want to start on my machines on my imac with intel chip it works like a charm on my new macbook with m1 chip with arm chip it did not work there are a few open issues in the github repository of the project so i'm not the only one experiencing those problems you might want to be aware of it it does not really work always everywhere so you might be lucky or unlucky i don't know in one of my machines it works and the other doesn't the technology behind virtual desktop does work on m1 unlike mini cube that does not work there so if you are having m1 chips then mini cube is not an option for you you must go for docker desktop or launcher desktop both of them should work there even though there are bugs let's start by confirming whether local kubernetes cluster works i will output the nodes and yeah that works correctly and let me output the pods not only to check whether kubernetes works but also to see what's inside by default if you're familiar with k3s or k3d this is it that's more or less the same thing this is k3s kubernetes distribution together with traffic running in a local virtual machine and that virtual machine is based on lima it's virtualization solution for desktops or laptops and that's what's powering the rancho desktop in other words when i started launcher desktop i got the virtual machine and inside of that virtual machine i got kubernetes based on k3s and b traffic and i should be able to build container images but we are yet to get to that part a few minutes ago i told you to enable kim to mark that checkbox that will install kim so let's take a look at what team is it stands for kubernetes image manager in other words it allows us to manage images which means mainly build and push and few other operations but instead of doing that in docker kim is doing it in kubernetes so it is using kubernetes itself to manage images which is potentially great because that's what we are potentially doing outside local development environments we have kubernetes cluster and we use one technology or another to build images and push images and do whatever we need to do with images in real production environments you're probably using conic or something like that and in this case for local development we are going to use kim let's do what everybody does when faced with a new cli let's see what helps us about it the key entry there is image and it should match docker image something command and that's all we really need for docker we need image sub commands we need docker image build docker image push docker image pool and all other docker image commands the rest of docker is more or less deprecated because we all switch to kubernetes locally remotely kubernetes is everywhere so what they really really really need from a potential docker replacement are docker image sub commands now to make transition easier and to save people from trying to figure out whether they should use docker to build image or team i'm going to create a lias that will use scheme whenever i type docker so from now on whenever i type docker i will be executing kim or kubernetes image manager cli and there are some limitations with it as you saw from help it is mostly focused on building container images that means that commands like docker container ls or docker container run do not work simply because kim does not implement that and that's okay we do not need docker anymore to run containers we need docker or docker like something to build container images specifically needed for building and pushing container images locally overnight this is where we run containers in production staging and locally as well there is no good reason i can imagine why we would not use the same mechanism to run our applications locally as remotely and if you're using kubernetes to run our applications in real environments then i want to do the same thing locally in other words the replacement for running containers or commands like docker containers something something is cube cuttle or helm or whichever kubernetes cli you're using so not being able to list containers and run containers and using docking compose and whatever else you're used to using docker is okay we do not need those things please please please switch to kubernetes for running your applications do not use docker for that that's not a good idea we need docker for building container images so let me try to build an image and push it to a registry i will use docker hub phase registry you can use any register you want what matters for now is that i will store my docker hub user in an environment variable so that you can follow along using the same commands instead of trying to replace my username with your username and whatsoever by the way all the commands that i'm executing and all the commands i'm showing you are energized and the link to the list is in the description so check it out and use it if you want to follow along i should have said that earlier right at the very beginning but you're probably used to me having gist for absolutely every video alright anyways let me try to build the container image and i will use docker command as if i'm still using docker and see whether that works and the command is docker image build and then i specify some tag and the last argument is the context or the path to context the docker file is and that's dot meaning the current directory and as expected that worked i built my container image but to be on the safe side let me list all the images and see whether it's really there and the image is there but there is a tiny problem look at the tag it says none and that's annoying because we are all used to docker creating latest as the tag if we do not specify the tag explicitly in other words when using docker if we do not specify the tag it is latest and if we specify the tag it is whatever the tag is kim on the other hand does not default to latest which is annoying because i'm lazy i do not want to type latest every time i build an image so we need to always always always specify the tag explicitly so i will repeat the same command with everything the same except that this time i will say colon latest so that it knows that i want to build an image with the tag latest which is the defacto standard that means hey whatever is the latest or the newest so let me list the images again and there we go this time it did target properly since i said explicitly latest that's what it used as the tag now let me make one thing clear i think that we should always always always tag images explicitly when creating real images you know the real releases that go to real registries and what's or not but when we work locally you probably do not want to tag images specifically 001 or 2 because that's for local development it should assume that latest is the default stack there are two more things i want to check whether they work correctly and one of those two things is whether we can tag images so i will execute docker image tag as i would normally do and tag the latest image as 01 and i will double check whether that worked correctly by listing all container images and as expected it's over there it's tugged the images they built so far are inside of the kubernetes cluster the one running the rancher desktop and i can use them as my kubernetes applications as long as i set the pull policy correctly because those images cannot be pulled from any registry because hey i did not push the image to any registry so far so let me do just that let me see if i can push the images i just built to let's say docker hub or any other container registry so branch desktop should you use it or should you not use it should you replace your docker desktop with launcher desktop for shouldn't let's go with pros to begin with it is extremely simple it is a simple tool you just start the desktop and that's about it there is almost nothing to do except maybe tweak memory and cpu that you wanted to use and select specific kubernetes version unless you want the latest it has a graphical user interface which might be important to some or might not if you're considering let's say mini cube as a replacement for docker desktop mini cube doesn't have a graphical user interface this one does maybe there is a project that can do it for minicube as well however it doesn't come as part of the core project so you might want to look elsewhere in any case if you need graphical user interface it's there so that's a bonus that's a plus and finally i need to stress this one more time it is very extremely easy to select kubernetes version you want to use and that might be a good use case for graphical user interface because it is so much easier to select specific version you want to use than trying to remember uh to specify through cli let's say with minicube hey i want this kubernetes version those are the pros let's talk about cons because the list of disadvantages is kind of larger than the list of advantages it is a new project full of missing features of bugs with only a couple of them like building an image without setting the tag explicitly does not produce the latest tag it did not work on one of my laptops and i'm sure that all those things will eventually be fixed but for now kim is green actually there are two parts of docker desktop there is docker desktop itself which is fantastic and it is battle tested because it is based on the technology that works and works really well with k3s and traffic and a few other components so i have full trust in stability and usefulness of launcher desktop my problem is with kim kim is too green it is not ready to replace docker itself and that's why i still think that mini cube watch the video it's in the description anyways i still think that mini cube is a better solution simply because mini cube is a way how to run docker engine in a virtual machine and interact with that docker engine with docker cli so i'm not changing the technology i know the docker works and i know that it works well or at least better than alternatives and that's what makes me like it more than kim which is still too new what else yes i cannot start rancher desktop from cli i do not like running it always forever and ever because it is using my cpu and memory for no good reason when i'm not working with container images and kubernetes and whatsoever so i like the possibility of being able to create a vm to create kubernetes cluster and to be able to build images when i need it and then when i don't just to execute some command that will destroy everything right now i need to use my mouse or trackpad to be more precise go to the tray and say yes i want to shut you down i just don't like using my trackpad too much i like keyboard and for me being able to start it and stop it or create it and destroy it from cli is very important for you it might not be you might prefer doing everything through graphical user interface and in that case this argument this negative point is really invalid doesn't matter so is this a good replacement for docker desktop i would say no it might be in the future it probably will be in the future but it is not there yet docker cli and docker engine are battle tested years of investment went into those two and they work really really really well so today i'm not ready to get rid of docker cli and docker engine i just need a way to run docker engine because it works natively only in linux and that's why we have docker desktop docker desktop gives us a virtual machine inside of which docker engine runs and that's what gives me mini cube as well except that i trust kubernetes in mini cube much more than kubernetes in docker desktop which was never really great so with mini cube i get best of both worlds i have docker for building container images and pushing container images and active docker engine in a virtual machine and that virtual machine is acting as a kubernetes cluster as well all in all launcher desktop amazing great i love it because i've been using the components in rancho desktop for a long time now what i do not necessarily like or what i do not think is a valid replacement for docker for building and pushing container images is kim so one thumbs up one thumbs down launcher desktop up kim not so much you
Info
Channel: DevOps Toolkit
Views: 60,967
Rating: undefined out of 5
Keywords: devops, devops toolkit, review, tutorial, viktor farcic, rancher, rancher desktop vs docker desktop, docker, docker desktop, rancher desktop mac, rancher desktop kim, rancher desktop install, rancher desktop m1, rancher desktop lima, rancher desktop mac m1, kim, local kubernetes cluster, local kubernetes cluster mac, kubernetes, k8s
Id: bYVfCp9dRTE
Channel Id: undefined
Length: 18min 19sec (1099 seconds)
Published: Mon Oct 11 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.