windows wsl 常用命令


初始化wsl

wsl --install

通過幫助指令了解wsl用法

wsl.exe --help

wsl常用命令

安裝系統Ubuntu,先用wsl --list --online查看有哪些可用的系統

wsl.exe --install -d Ubuntu

wsl安裝centos7

在這個地址下載centos7: https://github.com/mishamosher/CentOS-WSL/releases

解壓了下載安裝包
在powershell里進入解壓后的centos7目錄
運行./Centos7.exe 就安裝了

報錯
WSL的CentOS7使用systemctl和service命令時報錯Failed to get D-Bus connection: Operation not permitted,
解決辦法是更換systemctl文件

mv /usr/bin/systemctl /usr/bin/systemctl.old
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl

查看已安裝的Linux子系統

wsl.exe -l -v

進入Linux子系統Ubuntu, 需要進入哪個,先用wsl.exe -l -v查看之后選擇

#只有一個默認子系統
wsl
#多個子系統 ,-d 指定某個
wsl -d Ubuntu

刪除 某個 wsl 子系統,例如 Ubuntu-20.04

wsl --unregister Ubuntu-20.04

powershell執行Linux命令

#只有一個默認子系統
wsl -e df -h
#執行某個子系統的命令
wsl -e 

讓某個子系統關機

wsl -t Ubuntu #或者 wsl --terminate Ubuntu

顯示可以安裝的子系統

 wsl --list --online

設置默認子系統

PS C:\Users\Administrator> wsl -l -v
  NAME       STATE           VERSION
* Ubuntu     Stopped         1
  CentOS7    Running         1
PS C:\Users\Administrator> wsl -s CentOS7
PS C:\Users\Administrator> wsl -l -v
  NAME       STATE           VERSION
* CentOS7    Running         1
  Ubuntu     Stopped         1
PS C:\Users\Administrator>

windows server 2022 安裝 windows terminal

參考https://www.thomasmaurer.ch/2021/05/install-windows-terminal-on-windows-server-2022/
命令

Invoke-WebRequest -Uri https://github.com/microsoft/terminal/releases/download/v1.7.1091.0/Microsoft.WindowsTerminal_1.7.1091.0_8wekyb3d8bbwe.msixbundle -outfile Microsoft.WindowsTerminal_1.7.1091.0_8wekyb3d8bbwe.msixbundle
#這種方式安裝,版本無法自動升級,需要手動升級
Add-AppxPackage -Path .\Microsoft.WindowsTerminal_1.7.1091.0_8wekyb3d8bbwe.msixbundle

PVE 安裝 wsl 2 子系統 報錯

修改 /etc/pve/qemu-server/101.conf (101還是102要看虛擬機的編號)
添加args 例如

args: -cpu 'host,hv_ipi,hv_relaxed,hv_reset,hv_runtime,hv_spinlocks=0x1fff,hv_stimer,hv_synic,hv_time,hv_vapic,hv_vpindex,+kvm_pv_eoi,+kvm_pv_unhalt,-kvm,-hypervisor'

參考https://forum.proxmox.com/threads/hyper-v-in-windows-guest-not-working-for-wsl2.87791/

wsl2 啟動docker支持

安裝docker Windows
https://www.docker.com/products/docker-desktop
下載安裝

關閉Windows自動更新

  1. run services.msc ,禁用windows update
  2. 調低這個
    Pulpit rock
    Pulpit rock

vs code 安裝插件搜索 Remote Development extension pack

安裝插件

vs code 調試 shell script

安裝插件bash debug
https://zbttl-github-io.vercel.app/vscode-diao-shi-bash-shell-jiao-ben/

安裝python 3.9

官網下載安裝

vs code插件安裝ansible

wsl2 通過KinD (kubernetes in docker) 安裝k8s集群

請參考: https://www.qikqiak.com/post/deploy-k8s-on-win-use-wsl2/

# 下載 KinD 二進制文件
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
# 標記為可執行文件
chmod +x ./kind
# 移動到 PATH 目錄下去
mv ./kind /usr/local/bin/
# TODO,記得提前下載安裝 kubectl 二進制文件
# 檢查是否設置了 KUBECONFIG 環境變量
echo $KUBECONFIG
# 檢查是否存在 .kube 目錄,不需要手動創建
ls $HOME/.kube
# 使用 kind 命令創建一個名為 wslk8s 的集群
kind create cluster --name wslk8s
# 創建后檢查 .kube 目錄
ls $HOME/.kube




# 創建一個3節點集群的配置文件 **注意以下配置只是看看而已,請參考下方帶ingress 轉發(映射到宿主機的80,443)的配置**
cat << EOF > kind-3nodes.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
#注意,該配置只是看看和參考,不帶端口映射和ingress
nodes:
  - role: control-plane
  - role: worker
  - role: worker
EOF
# 使用配置文件創建新的集群
kind create cluster --name wslkindmultinodes --config ./kind-3nodes.yaml

# 獲取集群節點
kubectl get nodes

# 刪除現在的集群
kind delete cluster --name wslkindmultinodes 

kind安裝k8s( 帶ingress 轉發(映射到宿主機的80,443))

#第一步,建立集群
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
#注意該配置拿來生產都沒問題,😄
nodes:
- role: control-plane
  kubeadmConfigPatches:
  - |
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        node-labels: "ingress-ready=true"
  extraPortMappings:
  - containerPort: 80
    hostPort: 80
    protocol: TCP
  - containerPort: 443
    hostPort: 443
    protocol: TCP
EOF
#第二步 添加 ingress-nginx 控制器
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml

#第三步,添加服務和ingress,驗證ingress是否工作正常
kubectl apply -f https://kind.sigs.k8s.io/examples/ingress/usage.yaml
#打開 http://宿主機IP/foo
#打開 http://宿主機IP/bar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM