How to Install Docker and Kubernetes in WSL2 (Ubuntu 20.04.6 LTS) without using Docker Desktop in Windows 10?
For wsl2 Ubuntu Installation, In Windows Search, type Turn Windows features on or off tick checkbox for windows subsytem for linux click ok and then restart laptop
To Install Ubuntu20.04 or any other linux os we have two ways
a.) Using Poweshell as admin
(i)Type command wsl --install (By default Ubuntu will be installed) then set your username and password
To Dispaly avaialble linux distros and then Install
(ii) wsl --list --online
b.) Using Microsoft Store search Ubuntu20.04 or any distro and click on get then set your username and password
After Installation commands
i.) sudo apt update
How to Fix “temporary failure resolving archive.ubuntu.com” Error If you get this error while sudo apt update or any other Installation then type
i.) sudo nano /etc/resolv.conf (this will open resolv.conf) now
ii.) nameserver 8.8.8.8 (press ctrl + x and then shift Y then enter)
Steps To install nodejs lts
i.) search nodejs on chrome open https://nodejs.org click on other downloads
ii.) scroll down and click Installing Nodejs via package manager
iii.) Click on Debian and Ubuntu based Linux distributions.
iv.) Click Node.js binary distributions scroll down and copy the below command for node v.18 curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && \
sudo apt-get install -y nodejsEditing the file to add systemd to WSL 2
i.) sudo nano /etc/wsl.conf (this will open file then add)
ii.) [boot] systemd=true (press ctrl + x and then shift + y and then enter)
Steps to Install docker in wsl2 Ubuntu20.04
a.) Older versions of Docker were called docker, docker.io, or docker-engine. If these are installed, uninstall them: sudo apt-get remove docker docker-engine docker.io containerd runc
b.) Update the apt package index
sudo apt-get update
c.) install packages to allow apt to use a repository over HTTPS:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-released.) sudo mkdir -p /etc/apt/keyrings
e.) Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
f.) Use the following command to set up the stable repository: echo
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullg.) sudo apt update
h.) sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
i.) To start docker and check status and run container
i.) sudo service docker start ii. sudo service docker status iii. sudo docker run hello-world
j.) To add user to docker group sudo usermod -aG docker $User && newgrp docker
k.) sudo apt install -y conntrack
To Install Kubernetes in wsl2
i.) sudo snap install microk8s --classic
ii.) sudo microk8s status
iii.) sudo microk8s kubectl get nodes
If you get error cannot connect to snapstore then
i.) sudo apt update sudo apt install snapd sudo snap install snap-store
If you still get error then Try the commands below and ping api.snapcraft.io (again) if not then
i.) sudo snap unset system proxy.http
ii.) sudo snap unset system proxy.https
iii.) sudo systemctl restart snapd
To install minikube
i.) curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
ii.) chmod +x ./minikube
iii.) sudo mv ./minikube /usr/local/bin/
iv.) minikube config set driver docker
To Install kubectl
i.) curl -LO "[https://dl.k8s.io/release/$(curl](https://dl.k8s.io/release/$(curl) -L -S https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl/bin/linux/amd64/kubectl)"
ii.) curl -LO "[https://dl.k8s.io/$(curl](https://dl.k8s.io/$(curl) -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256/bin/linux/amd64/kubectl.sha256)"
iii.) echo "$(cat kubectl.sha256) kubectl" | sha256sum --check iv. chmod +x kubectl mkdir -p ~/.local/bin mv ./kubectl ~/.local/bin/kubectl v. sudo chown $USER:$USER /usr/bin/kubectl (you can replace $user with your user)
minikube start
minikube addons list then minikube start
kubectl get nodes
To Install Ingress Nginx
i.) minikube addons enable ingress (prefer this than the below then) or
ii.) microk8s enable ingress
If you get client side throttling then increase memory
i.) minikube stop
ii.) minikube config set memory 5972 (config file is located at ~/. minikube/config/config. json)
If you get sshd: no hostkeys available --exiting then
i.) sudo service ssh status
ii.) sudo ssh-keygen -A
iii.) sudo service ssh start
iv.) ifconfig | grep inet v. ssh @<first ip address from above ex 172.25.134.63>
If you want to take advantage of wsl2 for your development environment and don't want to use docker desktop in windows10 then above steps can help you install docker and tackle errors while installations. Till next time, happy coding!
Subscribe to my newsletter
Read articles from sulekh directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by