jammy, ubuntu2204, jammy-2025.09.1, ubuntu2204-2025.09.1Posit Workbench(前身为RStudio Workbench)是专业R用户和使用R与Python的数据科学团队首选的数据分析与集成开发环境。它提供专业数据科学团队在规模化运营时所需的协作、集中管理、指标监控、安全保障和商业支持能力。
Workbench的主要功能包括:
有关在组织中运行Posit Workbench的更多信息,请访问[***]
此镜像可能引入破坏性变更,因此建议:
{操作系统}标签以防止意外的版本变更过时镜像将随产品版本更新定期从DockerHub移除。请计划定期更新或使用自定义构建的镜像。
这些镜像旨在作为您需求的起点。建议创建此仓库的分支,以便在合并我们的变更时,同时保留您自己的安全扫描、基础操作系统或其他自定义修改。我们为此类情况提供了构建说明。
安全注意:这些镜像基于产品版本发布/更新时的构建环境按"原样"提供。在生产环境使用前应进行审查和更新。如果您的组织对CVE/漏洞严重级别有特定安全要求,应计划使用构建说明克隆此仓库,并根据内部安全标准重新构建这些镜像。
以下是使用产品许可证密钥在Docker中本地运行Workbench的简单示例。
bash# 替换为有效的许可证 export RSW_LICENSE=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX # 不使用持久化数据并使用默认配置运行 docker run -it \ -p 8787:8787 \ -e RSW_LICENSE=$RSW_LICENSE \ rstudio/rstudio-workbench:ubuntu2204
访问http://localhost:8787即可使用Posit Workbench。默认用户名和密码为rstudio。
请注意,运行Posit Workbench Docker镜像需要有效的Posit Workbench许可证。
此容器包含:
Posit Workbench通过/etc/rstudio目录中的配置文件进行配置。将此目录作为卷从主机挂载,容器重启后变更将生效。
可在文档中查看Posit Workbench的可能配置。
完整的服务器配置示例见workbench/conf。
为在容器重启间持久化用户文件,请将/home目录挂载到主机或Docker编排系统的持久卷。
Posit Workbench Docker镜像需要有效许可证,可通过三种方式设置:
RSW_LICENSE环境变量设置为有效的许可证密钥RSW_LICENSE_SERVER环境变量设置为有效的许可证服务器/端口/var/lib/rstudio-server/*.lic,或通过RSW_LICENSE_FILE_PATH指定包含有效Posit Workbench许可证的路径注意:离线安装需要使用浮动许可证服务器、许可证文件或手动干预的自定义镜像才能成功激活实例。
容器会自动在/var/lib/rstudio-server/*.lic查找许可证文件,并在存在时尝试使用它进行激活。以下示例使用绑定挂载从主机提供许可证文件:
bashdocker run -it --privileged \ -p 8787:8787 \ --mount type=bind,ro,src=<许可证文件路径>,dst=/var/lib/rstudio-server/rstudio-server.lic \ rstudio/rstudio-workbench:ubuntu2204
或者,可通过RSW_LICENSE_FILE_PATH环境变量指定容器内许可证文件的路径。如果提供,容器将尝试从指定路径查找并激活许可证。
bashdocker run -it --privileged \ -p 8787:8787 \ -e RSW_LICENSE_FILE_PATH=/opt/license.lic \ --mount type=bind,ro,src=<许可证文件路径>,dst=/opt/license.lic \ rstudio/rstudio-workbench:ubuntu2204
如果许可证文件激活失败,容器在大多数情况下将无法启动。您仍可通过对license-manager二进制文件运行status命令验证容器的许可状态:
bash$ docker exec -it <容器名称> /lib/rstudio-server/bin/license-manager status 检测到TTY。打印有关日志配置的信息消息。日志配置从'/etc/rstudio/logging.conf'加载。日志输出到'/var/log/rstudio/rstudio-server/license-manager.log'。 RStudio License Manager 2024.04.2+764.pro1 -- 许可证文件状态 -- 状态: 已激活 产品密钥: XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX 有密钥: 是 有试用: 否 层级: 层级名称 SKU年份: 2024 启用Launcher: 1 用户数: 0 用户活动天数: 365 Shiny用户数: 0 允许API: 1 ***服务器: 0 无限制服务器: 0 被许可方: 公司名称 许可证文件: /var/lib/rstudio-server/rstudio-server.lic 过期时间: YYYY-MM-DD HH:mm:ss 剩余天数: XXX 许可证引擎: 1.0.0.0 许可证范围: 系统 -- 本地许可证状态 -- 试用类型: 已验证 状态: 已过期 有密钥: 否 有试用: 是 许可证范围: 系统 许可证引擎: 4.4.3.0 -- 浮动许可证状态 -- 未使用许可证服务器。
也可通过设置RSW_LICENSE环境变量使用许可证密钥激活容器:
bash# 替换为有效的许可证 export RSW_LICENSE=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX # 不使用持久化数据并使用外部配置运行 docker run -it --privileged \ -p 4242:4242 \ -e RSW_LICENSE=$RSW_LICENSE \ rstudio/rstudio-workbench:ubuntu2204
在生产环境中,如有可能,应避免使用许可证密钥激活,而优先使用许可证文件,因为当容器未正常停止时存在许可证激活泄露的风险。有关许可证密钥问题的更多详情,请参见下文的容器中产品许可的注意事项部分。
默认情况下,容器将创建测试用户,可通过环境变量RSW_TESTUSER、RSW_TESTUSER_PASSWD、RSW_TESTUSER_UID控制或禁用该用户。
如果您有目录服务(LDAP服务器、Active Directory等)用于用户配置,容器中已安装并默认启用sssd(见下文"进程管理")。要使用它,需将自定义配置文件挂载到/etc/sssd/conf.d/。例如:
sssd.conf
ini[sssd] config_file_version = 2 domains = LDAP [domain/LDAP] id_provider = ldap auth_provider = ldap chpass_provider = ldap sudo_provider = ldap # ... 更多配置
然后运行:
bash# sssd对文件权限有严格要求 chmod 600 sssd.conf docker run -it \ -p 8787:8787 -p 5559:5559 \ -v $PWD/data/rsp:/home \ -v $PWD/server-pro/conf/:/etc/rstudio \ -v $PWD/sssd.conf:/etc/sssd/conf.d/sssd.conf \ -e RSW_LICENSE=$RSW_LICENSE \ rstudio/rstudio-workbench:ubuntu2204
值得注意的是,如果使用PAM进行自定义身份验证或会话行为,可能还需要修改容器中的PAM配置文件。更多信息请参见Posit Workbench指南。
| 变量 | 描述 | 默认值 |
|---|---|---|
RSW_TESTUSER | 容器中创建的测试用户,空值表示禁用 | rstudio |
RSW_TESTUSER_PASSWD | 测试用户密码 | rstudio |
RSW_TESTUSER_UID | 测试用户UID | *** |
RSW_LICENSE | Posit Workbench许可证密钥,格式:XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX | 无 |
RSW_LICENSE_SERVER | 浮动许可证服务器,格式:my.url.com:port | 无 |
RSW_LAUNCHER | 是否本地使用Launcher/启动Launcher进程 | true |
RSW_LAUNCHER_TIMEOUT | 等待Launcher在预期端口开始监听的超时时间(秒),超时则启动失败 | 30 |
| 变量 | 描述 |
|---|---|
8787 | Posit Workbench默认HTTP端口 |
5559 | Posit Launcher服务器端口 |
bash# 替换为有效的许可证 export RSW_LICENSE=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX # 不使用持久化数据并使用外部配置运行 docker run -it \ -p 8787:8787 -p 5559:5559 \ -v $PWD/workbench/conf/:/etc/rstudio \ -e RSW_LICENSE=$RSW_LICENSE \ rstudio/rstudio-workbench:ubuntu2204 # 使用持久化数据并使用外部配置运行 docker run -it \ -p 8787:8787 -p 5559:5559 \ -v $PWD/data/rsw:/home \ -v $PWD/workbench/conf/:/etc/rstudio \ -e RSW_LICENSE=$RSW_LICENSE \ rstudio/rstudio-workbench:ubuntu2204
访问http://localhost:8787即可使用Posit Workbench。默认用户名和密码为rstudio。
为使Posit Workbench正常运行,需要管理多个服务。我们使用supervisord运行这些服务。supervisord是一个开源进程管理器,支持在容器中运行多个服务,并在任何服务退出时使容器退出。
注意:通常,在单个容器中运行多个服务是反模式。但在Posit Workbench能够以更容器友好的方式处理用户和其他进程之前,我们实现了以下解决方法。
各进程及其配置详情如下:
Posit Workbench:主服务器进程
/startup/basePosit Job Launcher:支持启动Jupyter、JupyterLab和VSCode会话,以及与Slurm和Kubernetes等作业调度器通信
/startup/launcher/startup/launchersssd:常用于连接LDAP目录或其他用户存储进行用户配置
.conf文件挂载到/etc/sssd/conf.d/(详见上文"用户配置")/startup/user-provisioning//startup/user-provisioning/自定义服务:是否需要在容器内运行其他服务进行用户配置或其他操作?可将其他配置文件挂载到/startup/custom,它们也将由supervisord启动和管理
initContainers或sidecar容器是更好的选择注意:本节不适用于使用许可证文件的激活。
当前在容器中使用我们的产品存在已知许可问题。如果容器未正常停止,许可证停用步骤可能失败或被跳过。未能停用许可证可能导致"许可证泄露",即产品激活被耗尽,且由于容器上的激活状态丢失,无法使用传统方法停用。
为避免"泄露"许可证,建议用户不要强制终止容器,并对docker run和docker stop命令分别使用--stop-timeout 120和--time 120。这有助于确保停用脚本有足够时间正常运行。
在某些情况下,可能难以或无法避免硬终止(如电源故障、主机严重错误)。不幸的是,这些情况仍可能导致许可证泄露激活。为帮助防止这些情况下的许可证泄露,用户可将以下目录挂载到持久存储,以保留容器重启间的许可证状态数据。产品间的这些目录不同。
/var/lib/.local/var/lib/.prof/var/lib/rstudio-workbench/var/lib/.TurboFloat请注意,这些目录中创建的文件与硬件绑定,不可在主机间转移。由于硬件指纹算法的特性,对主机或容器的任何底层更改都可能导致现有许可证状态文件失效。为避免此问题,建议在更改主机硬件/固件(如升级网卡或更新BIOS)或容器(如更改使用的网络驱动或分配的CPU核心数)前,正常关闭产品容器并允许其停用。
虽然保留许可证状态数据有助于避免重启间的许可证泄露,但不能完全保证。如果您在许可证方面遇到问题,请随时联系Posit支持。
这些解决方案虽不能完全消除问题,但有助于缓解。我们仍在研究长期解决方案。
Posit Docker Products仓库相关的许可证位于LICENSE.md。
与所有容器镜像一样,这些镜像本身也包含可能受其他许可证约束的软件(如bash、linux、系统库等,以及主要软件的任何直接或间接依赖项)。
镜像用户有责任确保对本镜像(及其任何依赖层)的使用符合镜像中包含的所有软件的相关许可证。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429