rstudio/rstudio-workbenchjammy, 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、系统库等,以及主要软件的任何直接或间接依赖项)。
镜像用户有责任确保对本镜像(及其任何依赖层)的使用符合镜像中包含的所有软件的相关许可证。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务