MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

  • wsl

Contents

  1. wsl
    1. Install docker in wsl ubuntu 20.04.6 LTS
    2. Install k3s
    3. Run cherrypy-test in k3s
    4. Certificate issue
    5. Install debian in WSL
    6. Install Alpine linux using rootfs
    7. Install Slackware based on docker container

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

   1 curl -sfL https://get.k3s.io | sh -
   2 sudo k3s server > /tmp/k3s.log  2>&1 &
   3 sudo chmod 644 /etc/rancher/k3s/k3s.yaml
   4 kubectl get node

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

   1 sudo rm /var/lib/rancher/k3s/server/tls/dynamic-cert.json
   2 sudo kubectl --insecure-skip-tls-verify=true delete secret -n kube-system k3s-serving
   3 kill <k3s pid>
   4 sudo k3s server > /tmp/k3s.log  2>&1 &  
   5 sudo chmod 644 /etc/rancher/k3s/k3s.yaml
   6 kubectl get pods

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

   1 cat ubuntu.tar | docker import - ubuntu-wsl
   2 docker run -it ubuntu-wsl /bin/bash
   3 docker export container > rootfs.tar

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
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01