
accetto/ubuntu-vnc-xfceDocker Hub - GitHub - 更新日志 - Wiki
![badge-docker-pulls][badge-docker-pulls] ![badge-docker-stars][badge-docker-stars] ![badge-github-release][badge-github-release] ![badge-github-release-date][badge-github-release-date] ![badge-github-stars][badge-github-stars] ![badge-github-forks][badge-github-forks] ![badge-github-open-issues][badge-github-open-issues] ![badge-github-closed-issues][badge-github-closed-issues] ![badge-github-releases][badge-github-releases] ![badge-github-commits][badge-github-commits] ![badge-github-last-commit][badge-github-last-commit]
提示 如果你需要基于[Ubuntu 20.04 LTS][docker-ubuntu]的更新镜像,且包含最新版本的[TigerVNC][tigervnc-releases]/[noVNC][novnc-releases],请查看第三代(G3)镜像:[accetto/ubuntu-vnc-xfce-g3][accetto-docker-ubuntu-vnc-xfce-g3]、[accetto/ubuntu-vnc-xfce-chromium-g3][accetto-docker-ubuntu-vnc-xfce-chromium-g3] 或 [accetto/ubuntu-vnc-xfce-firefox-g3][accetto-docker-ubuntu-vnc-xfce-firefox-g3]。
提示 除非你需要[nss_wrapper][nsswrapper],否则也可以使用第二代(G2)镜像accetto/xubuntu-vnc-novnc,它是本镜像的精简版本(镜像层次结构)。该镜像还支持sudo命令。
本仓库包含用于构建基于[Ubuntu 18.04 LTS][docker-ubuntu]的Docker镜像的资源,该镜像带有[Xfce][xfce]桌面环境和[VNC][tigervnc]/[noVNC][novnc]服务器,适用于无头使用场景。
这些镜像可在Linux、Windows、Mac和NAS设备上成功构建和使用。已在[Ubuntu衍生版][ubuntu-flavours]的[Docker Desktop][docker-desktop]、[Windows 10][docker-for-windows]以及[QNAP][qnap]的[Container Station][container-station]上进行测试。
这是我的无头镜像的第一代(G1),我于2022年3月停止维护。但由于注意到镜像仍被拉取,我在2022年11月恢复了该项目。
当前的第二版(G1v2) 带来了一些改进,主要体现在构建流程和支持脚本上。
它还将之前分离的GitHub项目ubuntu-vnc-xfce-firefox、ubuntu-vnc-xfce-firefox-plus和ubuntu-vnc-xfce-chromium合并到了这个单一项目中。
本镜像 accetto/ubuntu-vnc-xfce 是我的其他具有附加功能的Docker镜像(accetto/ubuntu-vnc-xfce-firefox-plus、accetto/ubuntu-vnc-xfce-firefox-default 和 accetto/ubuntu-vnc-xfce-chromium)的基础镜像。
由此镜像创建的容器非常适合学习、开发或测试,因为它们可以通过Web浏览器(通过[noVNC][novnc])或VNC查看器(如[TigerVNC][tigervnc]或[TightVNC][tightvnc])轻松进行无头使用。同时提供精简版(lite) 和完整版(full) [noVNC][novnc]客户端。
虽然容器不包含任何Web浏览器,但已包含[mousepad][mousepad]和[vim][vim]编辑器以及ping工具。其他应用程序也可以在运行时轻松添加,因为容器在特权root用户下运行。
需要注意的是,容器的root与主机的root不同,并且不会自动获得主机上的所有root权限。有关更多信息,请查看[Docker文档][docker-doc](例如[运行时特权和Linux功能][docker-doc-capabilities])。
容器的主要使用场景是后台运行,但也可以在前台交互使用。有关示例,请参见下面的描述或Wiki中的HOWTO部分。
镜像包含以下组件:
镜像会定期维护和重建。重大变更历史记录在CHANGELOG中。
![screenshot-container][screenshot-container]
accetto/ubuntu-vnc-xfce
基于官方[ubuntu][docker-ubuntu]镜像的镜像。
latest 基于 ubuntu:latest
![badge-VERSION_STICKER_LATEST][badge-VERSION_STICKER_LATEST]
暴露以下TCP端口:
默认VNC用户密码为headless。
容器默认不创建或使用任何外部卷。但是,以下文件夹是良好的挂载点:
可以使用命名卷和绑定挂载。有关卷的更多信息,请参见[Docker文档][docker-doc](例如[管理Docker中的数据][docker-doc-managing-data])。
版本标签有多种用途,在Wiki中有更详细的描述。版本标签值标识Docker镜像的版本,在构建时持久化到镜像中,并在README文件中显示为徽章。
但是,脚本version_sticker.sh可随时用于方便地检查已安装应用程序的当前版本。
该脚本部署在启动文件夹中,该文件夹由环境变量STARTUPDIR定义,默认值为/dockerstartup。
如果在容器内执行不带参数的脚本,则返回容器的当前版本标签值。此值是新计算的,基于容器中基本应用程序的当前版本。
如果任何包含的应用程序已更新到其他版本,则当前版本标签值将与持久化值不同。
如果使用参数-v(小写v)调用脚本,则会打印出版本标签值中包含的基本应用程序的详细版本。
如果使用参数-V(大写v)调用,则会打印出更多应用程序的详细版本。
示例可在Wiki中找到。
容器默认在特权root用户下运行。但请注意,这是容器的root,与主机的root不同(见上文)。
以下容器将侦听主机自动选择的TCP端口:
dockerdocker run -d -P accetto/ubuntu-vnc-xfce
以下容器将侦听主机的显式TCP端口25901(VNC)和26901(noVNC):
dockerdocker run -d -p 25901:5901 -p 26901:6901 accetto/ubuntu-vnc-xfce
以下容器将创建或重用本地命名卷my_Downloads,挂载为/headless/Downloads:
dockerdocker run -d -P -v my_Downloads:/home/headless/Downloads accetto/ubuntu-vnc-xfce
或使用带有**--mount**标志的较新语法:
dockerdocker run -d -P --mount source=my_Downloads,target=/home/headless/Downloads accetto/ubuntu-vnc-xfce
更多使用示例可在Wiki的HOWTO部分找到。
镜像支持以下容器启动选项:--wait(默认)、--skip、--debug(也为--tail-log)和--help。
以下容器将打印帮助信息,然后自行删除:
dockerdocker run --rm accetto/ubuntu-vnc-xfce --help
输出摘录,描述其他选项:
dockerOPTIONS: -w, --wait (默认) 保持UI和vnc服务器运行,直到收到SIGINT或SIGTERM信号。 可选命令可在vnc启动后执行。 示例: docker run -d -P accetto/ubuntu-vnc-xfce 示例: docker run -it -P --rm accetto/ubuntu-vnc-xfce bash -s, --skip 跳过vnc启动,仅执行提供的命令。 示例: docker run -it -P --rm accetto/ubuntu-vnc-xfce --skip echo $BASH_VERSION -d, --debug 执行vnc启动并跟踪vnc/noVNC日志。 '--debug'后的任何参数将被忽略。CTRL-C停止容器。 示例: docker run -it -P --rm accetto/ubuntu-vnc-xfce --debug -t, --tail-log 与'--debug'相同 -h, --help 打印此帮助信息。 示例: docker run --rm accetto/ubuntu-vnc-xfce
需要注意的是,即使提供了-it运行参数,--debug启动选项也不会显示命令提示符。这是因为容器正在监视传入的vnc/noVNC连接并实时打印其日志。但是,可以轻松附加到正在运行的容器,如下例所示。
在主机的第一个终端窗口中,创建名为foo的新容器:
dockerdocker run --name foo accetto/ubuntu-vnc-xfce --debug
在主机的第二个终端窗口中,在foo容器内执行shell:
dockerdocker exec -it foo /bin/bash
有两种方式使用创建的无头容器。注意默认VNC用户密码为headless。
要通过VNC使用容器,需要一些VNC查看器(如[TigerVNC][tigervnc]或[TightVNC][tightvnc])。
VNC查看器应连接到运行容器的主机,指向映射到容器TCP端口5901的主机TCP端口。
例如,如果容器在名为mynas的主机上使用上述参数创建,则VNC查看器应连接到mynas:25901。
要通过[noVNC][novnc]使用容器,需要支持HTML5的Web浏览器。实际上,任何当前的Web浏览器都可以使用。
浏览器应导航到运行容器的主机,指向映射到容器TCP端口6901的主机TCP端口。
但是,自版本1.2.0起,容器提供两个[noVNC][novnc]客户端。除了之前可用的精简版(lite) 客户端外,还有完整版(full) 客户端,具有更多功能。两种情况下的连接URL略有不同。为方便起见,实现了一个简单的启动页面。
如果容器在名为mynas的主机上使用上述参数创建,则Web浏览器应导航到[***]。
启动页面将显示指向两个noVNC客户端的超链接:
[***][***]也可以通过链接提供密码:
[***][***]如果你发现问题或有疑问,请先查看Issues以及Wiki中的故障排除、常见问题和HOWTO部分。请不要忽略已关闭的问题。
如果未找到解决方案,可以提交新问题。你对问题的描述越详细,问题被快速解决的可能性就越大。
本项目最初受旧Docker镜像[consol/ubuntu-xfce-vnc][consol-docker-ubuntu-xfce-vnc]启发,并源自GitHub仓库[ConSol/docker-headless-vnc-container][consol-github-docker-headless-vnc-container]的旧版本。
同时感谢所有为开源社区做出贡献的无数个人和公司,是他们让许多梦想成为现实。
[acc
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务