Slide 1

Slide 1 text

Archy (Ayrat Khayretdinov) Replacing need for Docker Desktop

Slide 2

Slide 2 text

Local Dev environment Must have: ● Build Docker Images (Docker Engine) # docker build -t image_name . ● Run Docker Containers # docker run image_name ● Deploy to Kubernetes # kubectl create deployment –image=image_name [Optional] Nice to have: ● Able to run Docker Compose # docker-compose up . ● Scan Images # docker scan image ● Nice UI

Slide 3

Slide 3 text

Docker for Desktop

Slide 4

Slide 4 text

[MAC] Docker for Desktop

Slide 5

Slide 5 text

What’s problem with Docker for Desktop?

Slide 6

Slide 6 text

Price Increase for Docker Desktop as of October 2022

Slide 7

Slide 7 text

Who is affected ?

Slide 8

Slide 8 text

Docker for Desktop: Pros and Cons ● Multi platform ● UI ● Great Dev Experience ● Paid product for enterprise ● Frequent updates ● High CPU usage ● Little k8s control

Slide 9

Slide 9 text

Replacing Docker-For-Desktop For Mac and Windows

Slide 10

Slide 10 text

Docker for Desktop Alternatives

Slide 11

Slide 11 text

Using Rancher Desktop as Docker Desktop Replacement

Slide 12

Slide 12 text

[Mac] Containers without Docker: Colima ● Colima Container runtimes on macOS (and Linux) with minimal setup ○ Intel and M1 Macs support ○ Simple CLI interface ○ Docker and Containerd support ○ Port Forwarding ○ Volume mounts ○ Kubernetes (hidden K3s) ○ Fully replace Docker-for-Desktop (but no UI)

Slide 13

Slide 13 text

[Mac] Containers without Docker: Colima brew install colima # optional, not needed for containerd brew install docker # default using Docker runtime colima start # start kubernetes local cluster colima start --with-kubernetes # remove docker completely colima start --runtime containerd --with-kubernetes

Slide 14

Slide 14 text

Using minikube as Docker Desktop Replacement # Install Docker CLI (https://download.docker.com/ or `brew install docker`) # Install Minikube (https://minikube.sigs.k8s.io/docs/start/) # Install HyperKit (https://minikube.sigs.k8s.io/docs/drivers/hyperkit/) minikube start --driver hyperkit # will be auto-detected Or minikube start --container-runtime=docker --no-kubernetes minikube docker-env ● Minikube: local Kubernetes focusing on making it easy to learn and develop for Kubernetes. ○ Official Kubernetes tool maintained by K8s SIGs ○ Supports the latest Kubernetes release ○ Cross-platform (Linux, macOS, Windows) ○ Multiple container runtimes (CRI-O, containerd, docker) ○ Can use minikube as a Docker Desktop Replacement

Slide 15

Slide 15 text

Local Kubernetes Kind

Slide 16

Slide 16 text

Local Cluster: Kind https://kind.sigs.k8s.io/ Kind stands for Kubernetes in Docker. It’s a tool to create lightweight Kubernetes clusters using Docker container “nodes”. ● Official Kubernetes tool maintained by K8s SIGs ● It can be used to deploy Local K8s cluster or for CI ● Support ingress / LB (with some tuning) ● Support deployment of multiple clusters / versions ● Supports deployment of single or multi node clusters

Slide 17

Slide 17 text

Local Cluster: Kind $ brew install kind $ kind create cluster $ kind get clusters

Slide 18

Slide 18 text

Local Cluster: Kind

Slide 19

Slide 19 text

Local Cluster: Kind

Slide 20

Slide 20 text

Replacing Docker Engine podman=rootless containers

Slide 21

Slide 21 text

Containers without Docker Engine: PodMan ● Podman is the container Swiss-Army knife maintained by RedHat ○ Replaces Docker-For-Desktop, Docker Engine, Docker CLI ○ Works for Windows, Mac, Linux ○ Podman version 3.4+ now support M1 Apple Macs ○ Rootless mode provide more security ○ Multiple image formats including the OCI and Docker image ○ Container image management (managing image layers, overlay filesystems, etc) ○ However doesn’t provide Kubernetes cluster!!! So use Kind

Slide 22

Slide 22 text

(Optional) Podman Desktop

Slide 23

Slide 23 text

Online Tutorial https://rebrand.ly/k8s_tools

Slide 24

Slide 24 text

Now that i replace Docker for desktop, what i can do?

Slide 25

Slide 25 text

Using Shell and get some Kubectl

Slide 26

Slide 26 text

# kubecolor # kubie # k9s kubectx + kubens Setup your Shell for Kubernetes and get produktive

Slide 27

Slide 27 text

Step by step how to setup Mac with K8s Productivity tools https://rebrand.ly/k8s_tools

Slide 28

Slide 28 text

Setup your Shell for Kubernetes and get produktive https://rebrand.ly/k8s_tools