docker运行一个可以使用usb和显卡加速的桌面linux
#项目简介
https://hub.docker.com/r/linuxserver/
他是默认开了web vnc 和 xrdp的
其中ubuntu的镜像是支持3d加速的。
#准备工作
先查看宿主机的显卡 ls /dev/dri
usb设备 ls /dev/bus/usb
可以用 usbutils 和 lspice 详细查看
#选择 webtop 镜像
没有gnome,我这里 选择 ubuntu-kde,
#和常规docker不一样的地方
1、设备的映射
plaintext--device /dev/dri:/dev/dri \ --device /dev/fuse \
/dev/dri 显卡 /dev/fuse 就是fuse 宿主机要 'modprobe fuse'
2、docker嵌套
plaintext-v /var/run/docker.sock:/var/run/docker.sock \3、权限
plaintext
--device /dev/fuse \
--cap-add SYS_ADMIN \
或者
plaintext
--device /dev/fuse \
--cap-add SYS_ADMIN \
--security-opt apparmor:unconfined \
实在不行直接上 --privileged
#创建
plaintext
docker stop webtop-arch-kde && docker rm webtop-arch-kde
docker run -d \
--name=webtop-arch-kde \
--hostname=docker-arch \
--privileged \
--security-opt seccomp=unconfined \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-e SUBFOLDER=/ \
-e KEYBOARD=en-us-qwerty \
-e TITLE=Webtop \
-p 59030:3000 \
-p 59031:3389 \
-p 59032:22 \
-p 59033-59039:59033-59039 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /dev/bus/usb:/dev/bus/usb \
--device /dev/dri:/dev/dri \
--cap-add SYS_ADMIN --cap-add MKNOD --device /dev/fuse:mrw \
--restart unless-stopped \
linuxserver/webtop:arch-kde
#中文和汉化
plaintext
sudo pacman -Sy nano
sudo nano /etc/pacman.d/mirrorlist
plaintext
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
plaintext
sudo pacman -S wqy-microhei
sudo pacman -S wqy-zenhei
sudo pacman -S fcitx5-im fcitx5-rime
#时区
需要su
sudo passwd root
echo "Asia/Shanghai" > /etc/timezone
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#输入法配置
plaintext
sudo nano /etc/environment
-----------
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
plaintext
source /etc/environment
#yay
plaintext
sudo nano /etc/pacman.conf
plaintext
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
plaintext
sudo pacman -Sy archlinuxcn-keyring
sudo pacman -S yay
#其他常用工具
plaintext
sudo pacman -S wget unzip
#聊天软件
plaintext
sudo pacman -S libnotify dunst #通知服务
yay -S electronic-wechat-uos-bin
#kde还需要一个
sudo pacman -S xdg-desktop-portal-kde
wget -c https://dldir1.qq.com/qqfile/qq/QQNT/4691a571/QQ-v2.0.1-429_x64.AppImage
chmod u+x ./QQ-*
#AppImage依赖fuse,docker里面的fuse有一点小问题,启动测试
./QQ-v2.0.1-429_x64.AppImage --appimage-extract-and-run
sudo pacman -S telegram-desktop
#宿主重启一下docker
plaintext
docker restart webtop-arch-kde
#最后结语
因为docker的原因,后续一些小地方的处理会非常麻烦
尝鲜 可以,或者只用几个简单的软件也没啥问题,日用还是有一些问题的。
只用来跑一个几个软件 是不错的选择。