Contents

Win11/WSL环境在Docker/Alpine容器运行Linux/GUI应用

Win11/WSL环境在Docker/Alpine容器运行Linux/GUI应用

微软终于推win11的升级了,之前就有了解到win11/wsl能跑Linux/GUI,趁机会整点好玩的:

->win11/wsl2
->ubuntu/xfce4
->docker/alpine
->firefox+gimp(GUI_in_win11)

用一段时间看看效果,最终希望能解决多台电脑的应用迁移,免得不同电脑要重复搭建环境。

前期准备

由于本文操作涉及一定工作量的前期环境环境,各位同学需要自行查阅相关文章,好在都不算难。

操作系统:Windows11

启用功能:启用“适用于Linux的Windows子系统”,版本为wsl2

应用商城:安装“Windows Subsystem for Linux Preview”、Ubuntu或其他linux子系统

子系统内:安装桌面环境(如:xfce4)、Docker

具体操作

在wsl2/ubuntu环境下,创建docker/alpine容器,具体代码执行如下:

docker run \
-itd \
--net=host \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--name alpine-firefox \
alpine sh && \
\
docker start alpine-firefox && \
docker exec -it alpine-firefox sh

因为wsl2能通过/mnt文件夹直接访问win文件,如果想让容器应用访问win文件,创建容器时可以加上类似的参数-v /:/mnt/wsl(根据实际情况修改)

在docker/alpine容器里,安装GUI应用,具体代码执行如下:

sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
sed -i '$a https://mirrors.tuna.tsinghua.edu.cn/alpine/edge/testing/' /etc/apk/repositories
apk update
apk add wqy-zenhei firefox
sed -i '$d' /etc/apk/repositories
apk update
firefox &

最后附上最终效果图

参考文章

在docker中通过X11运行gui程序

在Docker for Windows中运行GUI程序

Docker: GUI 应用,Ubuntu 上如何运行呢?

Alpine镜像的中文支持和字体对比(puppeteer自动截图)

Alpine Linux添加中文支持显示