Contents
wsl
Windows Subsystem for Linux
Install docker in wsl ubuntu 20.04.6 LTS
1 sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
2 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3 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/null
4 sudo apt update
5 sudo apt install docker-ce docker-ce-cli containerd.io
6 sudo usermod -aG docker $USER
7 sudo service docker start
8 docker run hello-world
9 sudo apt install net-tools
10 docker pull vbodocker/cherrypy-test
11 docker run --rm --name ctest -P -d vbodocker/cherrypy-test
12 docker stop ctest
13 docker system prune -a
14 docker run --detach --name some-mariadb --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest
15 docker exec -it some-mariadb bash
Install k3s
Run cherrypy-test in k3s
1 cd ~
2 git clone https://github.com/vborrego/cherrypy-test.git
3 cd cherrypy-test/
4 cat README.md
5 kubectl apply -f cherrypy-test-deployment.yaml
6 curl $(kubectl get services | grep cherry | awk '//{print $3}'):8080
7 kubectl get services
8 kubectl get deployment
9 cat cherrypy-test-deployment.yaml
10 kubectl delete -f cherrypy-test-deployment.yaml
Certificate issue
Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2023-12-12T22:48:20Z is after 2023-05-17T21:01:11Z
Install debian in WSL
1 wsl --install -d Debian
2 #Installing, this may take a few minutes...
3 #Please create a default UNIX user account. The username does not need to match your Windows username.
4 #For more information visit: https://aka.ms/wslusers
5 #Enter new UNIX username: wsl
6 #New password:
7 #Retype new password:
8 #passwd: password updated successfully
9 #Installation successful!
10 wsl -d debian
1 sudo apt update
2 sudo apt upgrade
3 sudo apt install ca-certificates curl gnupg lsb-release apt-transport-https podman
4 lsb_release -a
5 sudo apt autoremove
6 podman run hello-world
7 curl -sfL https://get.k3s.io | sh -
8 sudo k3s server > /tmp/k3s.log 2>&1 &
9 sudo dd if=/dev/zero of=/swapfile1 bs=1024 count=4194304
10 sudo chown root:root /swapfile1
11 sudo /sbin/mkswap /swapfile1
12 sudo /sbin/swapon /swapfile1
13 sudo chmod 0600 /swapfile1
14 sudo update-alternatives --config iptables
15 # 1 /usr/sbin/iptables-legacy 10 manual mode
16 sudo k3s server > /tmp/k3s.log 2>&1 &
17 sudo chmod 644 /etc/rancher/k3s/k3s.yaml
18 kubectl get pods
19 sudo apt install openjdk-21-jdk
20 sudo apt install nodejs
21 kubectl get node
22 cd ~
23 sudo apt install git
24 git clone https://github.com/vborrego/cherrypy-test.git
25 cd cherrypy-test/
26 kubectl apply -f cherrypy-test-deployment.yaml
27 curl $(kubectl get services | grep cherry | awk '//{print $3}'):8080
28 kubectl get deployments
29 kubectl get pods
30 kubectl logs $(kubectl get pods | tail -1 | awk '//{print $1}')
Install Alpine linux using rootfs
1 # in windows git bash
2 wget https://dl-cdn.alpinelinux.org/alpine/v3.24/releases/x86_64/alpine-minirootfs-3.24.2-x86_64.tar.gz
3 wsl --import Alpine-3-24-2 %USERPROFILE%\Alpine-3-24-2 alpine-minirootfs-3.24.2-x86_64.tar.gz
4 wsl -d Alpine-3-24-2
5 cd ~
6 apk update
7 apk add bash sudo nano openssh-client openjdk25 less vim git git-lfs wget curl jq zip unzip maven graphviz docker-engine docker-cli docker-cli-compose aws-cli aws-session-manager-plugin openrc docker docker-openrc containerd runc chromium util-linux openssl py3-pip
8 adduser wsl
9 adduser wsl wheel
10 visudo # uncomment wheel
11 exit
12 wsl -d Alpine-3-24-2 -u wsl
13 cd ~
14 whoami
15 sudo bash
16 echo -e "mkdir -p /run/openrc\ntouch /run/openrc/softlevel\napk update\ntouch /run/openrc/softlevel\ntouch /etc/network/interfaces\nservice docker start\n" > /system_startup.sh
17 chmod 755 /system_startup.sh
18 echo -e '[user]\ndefault=wsl\n\n[boot]\ncommand="/system_startup.sh"' > /etc/wsl.conf
19 apk update
20 rc-service docker start
21 rc-update add docker boot
22 adduser root docker
23 addgroup wsl docker
24 mkdir -p /run/openrc
25 touch /run/openrc/softlevel
26 apk update
27 touch /etc/network/interfaces
28 touch /run/openrc/softlevel
29 service docker start
30 exit
31 exit
32 wsl -d Alpine-3-24-2
33 docker run hello-world
34 exit
35 wsl -d Alpine-3-24-2 --shutdown
36 wsl -d Alpine-3-24-2
37 docker ps
38 docker run hello-world
39 exit
40 wsl --export Alpine-3-24-2 alpine-3-24-2.tar.gz --format tar.gz
41 wsl --unregister Alpine-3-24-2
WSL rootfs is a tarball
WSL, provides the kernel, file system provided by me
Install Slackware based on docker container
1 docker pull liveslak/slackware
2 docker run --rm -d -it --name slack15 liveslak/slackware cat
3 docker export slack15 > slack15.tar
4 cp slack15.tar /mnt/c/Users/userx/
5 wsl --import slack15 %USERPROFILE%\slack15 %USERPROFILE%\slack15.tar
6 wsl -d slack15
7 cd /
8 cat /etc/os-release
9 useradd -m -G wheel -s /bin/bash wsl
10 password wsl
11 slackpkg update
12 slackpkg upgrade-all
13 visudo # uncomment wheel
14 echo -e '#!/bin/sh \n /etc/rc.d/rc.crond start' > /startup.sh
15 chmod +x /startup.sh
16 echo -e "[user]\ndefault=wsl\n\n[boot]\ncommand="/startup.sh"" > /etc/wsl.conf
17 mv /etc/fstab /etc/fstab.old
18 touch /etc/fstab
19 slackpkg install procps elogind nano vim sodium
20 ps uax
21 echo -e "export PATH=$PATH:/sbin/:/usr/sbin/\nexport SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt\ncd ~\n" > /etc/profile
22 update-ca-certificates
23 curl https://www.google.com
24 env
25 exit
26 wsl --export slack15 slack15.tar.gz --format tar.gz
27 wsl -d slack15 --shutdown
28 wsl --unregister slack15
29 wsl --list
30 wsl --import slack15 %USERPROFILE%\slack15 slack15.tar.gz
31 wsl -d slack15
