產生此想法的考量:
- 我使用zerotier內網穿透,每一個WSL2都需要單獨的新增進內網中,這很不優雅
- 每一個WSL2都需要單獨的分配ssh埠,這很不優雅
- 每次損壞WSL2都需要完全重新安裝,這也很不優雅
由此,我萌生出使用distrobox的想法,因為網上教程足夠的多,支援的系統也多(後期我可能會考慮incus)
感謝Ivon大佬的教程
1. 安裝distrobox
預設使用的是Docker作為後端
sudo apt install distrobox
當然如果你想,也能夠使用Podman作為後端
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --next --prefix ~/.local
之後新增~/.bashrc or ~/.zshrc
# Podman和Distrobox的路徑
PATH=$PATH:$HOME/.local/podman/bin:$HOME/.local/bin
# 允許應用程式顯示在螢幕上(需安裝xhost)
xhost +si:localuser:$USER
2. 建立一個distrobox
distrobox create
不加任何引數,預設安裝一個最新的fedora
建立一個debian12的distrobox
distrobox create --name debian12 --image debian:12
英偉達顯示卡驅動
distrobox create --name debian12 --image debian:12 --nvidia
# 或者使用Nvidia Container Toolkit
distrobox create --name debian12 --additional-flags "--runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all -e NVIDIA_DRIVER_CAPABILITIES=all" --image debian:12
自定義安裝路徑
distrobox create --name debian12 --image debian:12 --home ~/distrobox/debian12
設定root許可權
distrobox create --name debian12 --image debian:12 --root
新增環境變數
distrobox create --name debian12 --image debian:12 --additional-flags "--env EDITOR=vim"
設定預先要安裝的套件
distrobox create --name debian12 --image debian:12 --additional-packages "git tmux vim"
外掛docker volume
distrobox create --name debian12 --image debian:12 --volume /opt/my-dir:/usr/local/my-dir:rw
3. distrobox相關
# 啟動
distrobox enter debian12
# 重啟
distrobox restart debian12
# 停止
distrobox stop debian12
# 刪除
distrobox rm debian12