基于KasmWeb的 Ubuntu 22.04 桌面版(Web) Docker Image。镜像替换了阿里云Ubuntu Jammy镜像源,安装了Google Chrome浏览器和流行的文本编辑器VSCode。同时集成了qBittorren/迅雷/百度网盘国内流行的主流下载工具。
使用如下命令运行容器,即可得到一个纯净的Ubuntu 22.04桌面环境,通过任意浏览器访问 https://your-host-ip
即可。适合部署在Home Server或OpenWrt等软路由系统中,实现网络资源下载和私有网络服务访问。
# builddocker build -t colinchang/ubuntu-desktop .# rundocker run -d \
--name ubuntu \
--shm-size=512m \
-p 443:6901 \
-e VNC_PW=password \
-u root \
--restart always \
colinchang/ubuntu-desktop
注意通过浏览器访问时协议类型务必确认是https
, 默认登录信息如下:
用户名:kasm_user
密码:password
用户可以根据需要挂载数据卷。
https://github.com/colin-chang/ubuntu-desktop?tab=readme-ov-file
简单Google了下在软路由上可以使百度网盘的一个Web版插件BaiPCS-Web
,折腾了一会儿发现不怎么好用。不禁想到了前段时间折腾的Docker工作空间——Kasm。简单查了下百度网盘官方也提供了Linux安装包,既然折腾一顿,不妨也看下相关的其它常用的下载工具,qBittorrent毫无疑问友好的支持Linux,准备开干,整个下载包合集吧。正准备动手,老婆上来就是一句:“你这玩意儿连迅雷都没有,不行啊。”,这不能忍,Google了下,果然迅雷还出了一个Linux客户端,迅雷官网上没有找到但在某论坛找到了安装包,那就一起嗨吧。
这里简单介绍几句Kasm吧,这玩意是一个牛逼的神器,它提供过了一个界面话的Linux系统,同时把各种大大小小的工具装到了里面,然后以Docker镜像方式提供给使用者。这就意味着你可以将各种复杂的工具包甚至是开发运维环境带在身边,在任何一个可以运行Docker的机器上运行一个容器即可得到你的工作环境。仿佛就是儿时动画片《龙珠》中的万能胶囊啊,任何庞杂的都是全部封装到一个万能胶囊中,任何时间地点需要时,取出胶囊一丢,东西就有了。
当然虽然Kasm非常nice的为我们提供了一些安装了类似Chrome/Telegram/VsCode等工具的镜像,但显示它不可能提供百度网盘、迅雷等具有中国特色的下载工具。那我们就自己动手封装一个,我们可以基于现在的镜像如kasmweb/chrome
去扩展即可,但是现有镜像基本都是基于Ubuntu 20.04,而且工具版本也不是最新的。既然我们打算自己封装镜像了,那不妨粗暴一点,基于一个最新的Ubuntu 22.04来一一安装我们需要的各种工具。简单找了下发现了目标镜像——kasmweb/core-ubuntu-jammy
,这是一个带UI的Ubuntu 22.04的干净的镜像,不废话直接上Dockerfile:
FROM kasmweb/core-ubuntu-jammy:develop LABEL version="1.0" maintainer="colinchang<zhangcheng5468@gmail.com>"USER root# 替换阿里云系统源COPY $PWD/sources.list /etc/apt/sources.list COPY $PWD/xunlei_1.0.0.1-myubuntu_amd64.deb /home/kasm-user RUN apt update && mkdir -p /home/kasm-user/Desktop \# Chrome&& apt install -y xdg-utils fonts-liberation libu2f-udev \ && wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ && dpkg -i google-chrome-stable_current_amd64.deb \ && sed -i 's/Exec=\/usr\/bin\/google-chrome-stable/Exec=\/usr\/bin\/google-chrome-stable --no-sandbox/g' /usr/share/applications/google-chrome.desktop \ && ln -s /usr/share/applications/google-chrome.desktop /home/kasm-user/Desktop/google-chrome.desktop \# BaiduNetDisk&& wget https://issuepcdn.baidupcs.com/issue/netdisk/LinuxGuanjia/4.17.7/baidunetdisk_4.17.7_amd64.deb \ && dpkg -i baidunetdisk_4.17.7_amd64.deb \ && ln -s /usr/share/applications/baidunetdisk.desktop /home/kasm-user/Desktop/baidunetdisk.desktop \# Thunder&& apt install -y libgtk2.0-0 libdbus-glib-1-2 \ && dpkg -i xunlei_1.0.0.1-myubuntu_amd64.deb \ && sed -i 's/Exec=\/opt\/thunder\/xunlei\/start.sh/Exec=\/opt\/thunder\/xunlei\/start.sh --no-sandbox/g' /usr/share/applications/xunlei.desktop \ && ln -s /usr/share/applications/xunlei.desktop /home/kasm-user/Desktop/xunlei.desktop \# qBittorrent&& add-apt-repository -y ppa:qbittorrent-team/qbittorrent-stable \ && apt update \ && apt install -y qbittorrent \ && ln -s /usr/share/applications/org.qbittorrent.qBittorrent.desktop /home/kasm-user/Desktop/org.qbittorrent.qBittorrent.desktop \# Visual Studio Code&& wget https://az764295.vo.msecnd.net/stable/704ed70d4fd1c6bd6342c436f1ede30d1cff4710/code_1.77.3-1681292746_amd64.deb \ && dpkg -i code_1.77.3-1681292746_amd64.deb \ && sed -i 's/Exec=\/usr\/share\/code\/code/Exec=\/usr\/share\/code\/code --no-sandbox/g' /usr/share/applications/code.desktop \ && sed -i 's/Icon=com.visualstudio.code/Icon=\/usr\/share\/code\/resources\/app\/resources\/linux\/code.png/g' /usr/share/applications/code.desktop \ && ln -s /usr/share/applications/code.desktop /home/kasm-user/Desktop/code.desktop \ && apt autoremove -y \ && apt clean \ && rm -rf *.deb
需要注意的是,除了常规的下载安装包并安装依赖工具包之外,要将工具包软链接(相当于Windows中的快捷方式)放到桌面上,还需要修改一些个配置,每个软件各不相同。当然相关指令我已经放到Dockerfile
中了,你要为我怎么知道的,当然是跑一个裸容器,然后进容器界面操作一番后对比软链接文件内容总结出来的啦,有读者有兴许的可以在留言告诉我出一期教程。下面就是编译镜像运行容器,shutup and show me the code!?
# build docker build -t colinchang/ubuntu-desktop . # run docker run -d \ --name ubuntu \ --shm-size=512m \ -p 443:6901 \ -e VNC_PW=password \ -u root \ --restart always \ colinchang/ubuntu-desktop
除了下载工具外我还顺手打包了VsCode(方便修改各种配置文件)和Chrome(访问资源网站)。
当然需要特别注意的一点是务必要记得在运行容器时,将下载目录映射到宿主机,不然容器一重启,千辛万苦下载的资料就灰飞烟灭了。另外通过浏览器访问时协议类型务必确认是https
,默认用户名是kasm_user
,密码是运行容器时设定的。
到这里我们的下载工具包就搞定了,可以让我们的软路由24小时为我们下载各种资源了,欧耶!
其实在某些软路由系统中如小宝的iStore OS,已经为我们提供了Kasm的插件,也可以直接使用插件运行Kasm容器,然后进行定制,只是我更喜欢自己定制的快乐和折腾的乐趣。当然基于Kasm只是安装几个下载工具其实是大材小用了,如果如果你是一个会玩的人,你甚至可以将任意想要的工具乃至开发运维环境都打包到一个镜像中。Kasm只是基础设施,它为使用者提供了一个容器化的带UI界面的Linux系统,你可以基于它进行各种丰富的扩展和自定义。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/9055.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~