因为docker使用的kvm虚拟化与virtualbox不兼容,这样在需要使用一些windows应用是就有点麻烦了。大概搜索了以下,发现了一个替代方案:winboat. 这是一个基于docker的方案,基于windos docker container项目。使用了一下,基本就是基于这个项目添加了设置的gui和基于FreeRDP的显示功能。
安装
相关文档:
- docker安装:https://docs.docker.com/engine/install/ubuntu/
- FreeRDP安装: https://github.com/FreeRDP/FreeRDP/wiki/PreBuilds
- 加载kernel modules :https://rentry.org/rmfq2e5e
- winboat下载地址:https://github.com/TibixDev/winboat/releases
# 安装docker
# 1. 删除不兼容的包
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
# 2. 设置docker的repo
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# 3. 安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 将当前用户添加到docker组
sudo groupadd docker
sudo usermod -aG docker $USER
# 设置自动docker启动
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
# 安装FreeRDP (Flatpak)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install com.freerdp.FreeRDP
# 加载kernel modules
echo -e "ip_tables\niptable_nat" | sudo tee /etc/modules-load.d/iptables.conf
# 安装winboat (当前最新版为0.8.7)
wget https://github.com/TibixDev/winboat/releases/download/v0.8.7/winboat-0.8.7-amd64.deb
sudo dpkg -i winboat-0.8.7-amd64.deb
逐条运行上述命令后重启电脑,应该就可以使用Winboat了。第一次运行程序是会需要进行一系列设置,以便让软件自动下载和安装windows docker。后面就会出现如下界面,展示windows的docker正在运行

安装过程中可能会需要代理设置,可以见之前的记录:
使用
windows桌面(软件安装等操作,或需要多app协同)
在需要多app协同时,或者安装软件是,直接使用windows桌面是更方便的方式,在Apps中选择Windows Desktop就可以激活这个选项。对于安装软件,可以在Configuration中打开Shared Home Folder选项以方便传文件。
seamless模式(具体软件使用)
seamless模式可以只打开应用的窗口,例如excel:

带开的窗口可以resize,但是resize的过程没有在windows桌面下那么顺滑。
tips
简单使用发现,目前的winboat还不是特别完善,有一些需要注意的点:
- 登陆密码是明文存储的!这是非常糟糕的一个选择,不知道后面会不会有改进。目前密码以明文的形式保存在
$HOME/.winboat/docker-compose.yml文件中 - 如果在windows中登陆了微软账户,会造成当前账户的登录密码更改,winboat无法登陆桌面。应该避免这样的操作
- 目前该软件只能共享完整的home目录,而不是可以选择share的文件夹,这会造成一些风险。最好仅在必要时打开。。。
- 有些软件窗口在seamless模式下无法resize,这个是试用vscode时发现的,对于这种情况,只能使用完整的桌面模式


津公网安备12010402001491号