
https://hub.docker.com/r/accetto/xubuntu-vnc-novnc-firefox/ - https://github.com/accetto/xubuntu-vnc-novnc/ - https://github.com/accetto/xubuntu-vnc-novnc/blob/master/CHANGELOG.md - https://github.com/accetto/xubuntu-vnc-novnc/wiki - https://github.com/accetto/xubuntu-vnc-novnc/wiki/Image-hierarchy
本仓库包含基于https://hub.docker.com/_/ubuntu/的Docker镜像构建资源,该镜像配备Xfce桌面环境和VNC/https://github.com/kanaka/noVNC服务器,适用于无头使用场景。
这是我的无头镜像的第二代(G2),于2022年3月停止维护,但因仍有拉取需求,于2022年11月重启项目。当前第二版(G2v2)主要在构建流程和支持脚本方面进行了改进。
如需基于https://hub.docker.com/_/ubuntu/并包含最新https://github.com/TigerVNC/tigervnc/releases/https://github.com/novnc/noVNC/releases版本的更新镜像,请查看第三代(G3)镜像:https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-g3、https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-chromium-g3或https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-firefox-g3。
主镜像为https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-firefox-plus/的精简版本。由于Firefox v67对用户配置文件的处理方式不同,已重新实现了适用的plus功能。
该镜像属于https://github.com/accetto/xubuntu-vnc-novnc/wiki/Image-hierarchy的一部分,基于https://hub.docker.com/r/accetto/xubuntu-vnc-novnc/构建,继承其所有功能,因此此处不再重复完整描述。
latest镜像继承的内容包括:
.deb包并解析依赖(Ubuntu发行版)并额外添加:
重要变更历史记录在https://github.com/accetto/xubuntu-vnc-novnc/blob/master/CHANGELOG.md中。
以下镜像标签会定期维护和重建:
latest:基于accetto/xubuntu-vnc-novnc:latest,包含plus功能https://github.com/accetto/xubuntu-vnc-novnc/tree/master/docker/xubuntu-vnc-novnc-firefox仓库包含多个可用于构建镜像的Dockerfile:
Dockerfile.firefox:构建latest标签的主Dockerfile,默认基于accetto/xubuntu-vnc-novnc:latest。通过BASETAG构建参数可基于其他基础标签(如accetto/xubuntu-vnc-novnc:lab)构建,包含plus功能。Dockerfile.firefox.default:构建default标签,基于accetto/xubuntu-vnc-novnc:latest,不含plus功能。Dockerfile.firefox.myown:用于构建内置自定义Firefox偏好设置的镜像。暴露以下TCP端口:
容器默认不创建或使用外部卷,但以下文件夹适合作为挂载点:/home/headless/Documents/、/home/headless/Downloads/、/home/headless/Pictures/、/home/headless/Public/
支持命名卷和绑定挂载。有关卷的更多信息,请参见Docker文档(如管理Docker中的数据)。
基于这些镜像创建的容器以非root默认应用用户(headless,1001:0)运行,但sudo命令允许用户提权。详细描述请查看基础镜像https://hub.docker.com/r/accetto/xubuntu-vnc-novnc/或https://github.com/accetto/xubuntu-vnc-novnc/wiki。
版本标签的用途在https://github.com/accetto/xubuntu-vnc-novnc/wiki中有详细说明。版本标签值标识Docker镜像版本,在构建时持久化到镜像中,并在README中以徽章形式显示。
脚本version_sticker.sh可随时用于便捷检查已安装应用的当前版本,部署在由环境变量STARTUPDIR(默认值/dockerstartup)定义的启动文件夹中。
在容器内执行不带参数的脚本时,返回容器的当前版本标签值(基于容器中必要应用的当前版本计算)。若任何包含的应用更新到其他版本,当前版本标签值将与持久化值不同。
使用参数-v(小写)时,输出版本标签值中包含的必要应用的详细版本;使用-V(大写)时,输出更多应用的详细版本。示例见https://github.com/accetto/xubuntu-vnc-novnc/wiki。
有两种使用创建的无头容器的方式,请参考基础镜像https://hub.docker.com/r/accetto/xubuntu-vnc-novnc/了解详情。
默认VNC用户密码为headless。
Firefox多进程(也称为Electrolysis或E10S)在Docker容器中若共享内存不足可能导致严重崩溃(“Gah. Your tab just crashed.”)。
在Firefox76.0.1及之前版本,可通过设置环境变量MOZ_FORCE_DISABLE_E10S禁用多进程。但在Firefox77.0.1中,该设置导致几乎所有网页因未解压而显示错乱。
Mozilla在后续版本修复了此问题,但警告未来可能不支持该开关。因此,标记为latest的主流镜像默认启用多进程,尽管需要更大共享内存,但性能更高且网页浏览更安全。
曾维护singleprocess镜像用于无法或不愿增加共享内存的场景,但Firefox81.0起,环境变量MOZ_FORCE_DISABLE_E10S不再生效,所有镜像均以多进程模式运行Firefox。
更多信息及不同场景下设置共享内存大小的说明,请查看Wiki页面https://github.com/accetto/xubuntu-vnc/wiki/Firefox-multiprocess。
多进程Firefox的不稳定性由共享内存大小过低导致,Docker默认仅分配64MB。测试表明,至少使用256MB可完全消除问题(具体可能因系统而异)。
https://github.com/accetto/xubuntu-vnc/wiki/Firefox-multiprocess Wiki页面描述了多种增加共享内存大小的方法。若需为命令行启动的单个容器设置,操作简单,例如:
bashdocker run -d -P --shm-size=256m accetto/xubuntu-vnc-novnc-firefox
在容器内执行以下命令可检查当前共享内存大小:
bashdf -h /dev/shm
Firefox浏览器支持用户偏好的预配置。
用户可将个人浏览器偏好放入user.js文件并复制到Firefox配置文件文件夹,plus功能使此过程更简单。
/home/headless/firefox.plus文件夹包含user.js文件和辅助工具copy_firefox_user_preferences.sh,可将user.js复制到一个或多个现有Firefox配置文件。该工具为交互式,使用-h或--help参数可显示帮助。
为方便使用,还提供了工具和Firefox配置文件管理器的桌面启动器。
利用plus功能的推荐步骤:
使用桌面启动器FF Profile Manager启动Firefox配置文件管理器。若尚无配置文件或需添加新配置文件,创建后启动Firefox(启动Firefox是创建实际配置文件内容的必要步骤)。
提示:创建配置文件前可勾选“离线工作”。
Firefox配置文件默认创建在/home/headless/.mozilla/firefox文件夹(.mozilla为隐藏文件夹)。点击“退出”按钮关闭配置文件管理器。
将个人Firefox偏好放入/home/headless/firefox.plus文件夹中的user.js文件。有关语法,可查看Firefox文档(如Firefox偏好设置)。
提示:另一种方法是先启动Firefox进行配置,然后将Firefox配置文件文件夹中的prefs.js内容复制到user.js,检查并保留需强制生效的偏好设置(仅需执行一次或更新时执行)。
使用桌面启动器Copy FF Preferences启动辅助工具,可将user.js文件复制到任何现有Firefox配置文件。
提示:删除Firefox配置文件文件夹中的user.js文件前,偏好设置将一直生效。
通过Dockerfile.firefox.myown可轻松构建包含预填充user.js文件的自定义镜像,构建过程仅需数秒。
若发现问题或有疑问,请先查看https://github.com/accetto/xubuntu-vnc-novnc/issues和https://github.com/accetto/xubuntu-vnc-novnc/wiki(包括已关闭的问题)。如未找到解决方案,可提交新issue,问题描述越详细,解决可能性越高。
感谢所有为开源社区做出贡献的无数个人和公司,是他们让许多梦想成为现实。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务