rocker/shiny-verseRocker Shiny + Tidyverse 镜像是基于 Rocker 项目 的版本稳定镜像构建,集成了 Shiny 服务器和 Tidyverse 数据科学生态系统。该镜像旨在为数据科学家、分析师和开发者提供开箱即用的环境,快速部署基于 R Shiny 的交互式 Web 应用,同时支持数据处理、可视化和统计分析等任务。
dplyr(数据操作)、ggplot2(数据可视化)tidyr(数据清洗)、readr(数据读取)purrr(函数式编程)、tibble(增强数据框)等versioned2 系列,采用固定版本标签(如 4.3.0),确保 R 环境、Shiny 及依赖包版本一致性,避免生产环境依赖冲突。apt 管理系统级依赖。通过 Docker Hub 拉取最新稳定版(标签规则参考 Rocker 版本文档):
bashdocker pull rocker/shiny-verse:latest
注:
shiny-verse是 Rocker 项目中集成 Shiny 和 Tidyverse 的标准镜像标签,对应本镜像描述的功能。
启动容器并映射 Shiny 默认端口(3838):
bashdocker run -d -p 3838:3838 --name shiny-app rocker/shiny-verse:latest
访问 http://localhost:3838 即可打开 Shiny 欢迎页面。
将本地应用目录(如 ./my-shiny-app)挂载到容器,运行自定义应用:
bashdocker run -d -p 3838:3838 \ -v $(pwd)/my-shiny-app:/srv/shiny-server/ \ --name my-shiny-app \ rocker/shiny-verse:latest
说明:容器内 Shiny 服务器默认从
/srv/shiny-server/加载应用,需确保本地目录包含app.R或server.R+ui.R文件。
指定主机端口(如 8080),并挂载数据卷持久化应用数据:
bashdocker run -d -p 8080:3838 \ -v $(pwd)/my-shiny-app:/srv/shiny-server/ \ -v shiny-data:/srv/shiny-server/data \ # 命名卷存储应用数据 --name shiny-app-custom \ rocker/shiny-verse:latest
创建 docker-compose.yml 定义完整服务(含配置、数据卷、时区等):
yamlversion: '3.8' services: shiny-app: image: rocker/shiny-verse:latest container_name: shiny-app restart: always # 容器退出后自动重启 ports: - "3838:3838" volumes: - ./my-shiny-app:/srv/shiny-server/ # 本地应用目录 - shiny-data:/srv/shiny-server/data # 数据持久化卷 - ./shiny-server.conf:/etc/shiny-server/shiny-server.conf # 自定义 Shiny 配置 environment: - TZ=Asia/Shanghai # 设置时区为上海 - R_ENVIRON_USER=/srv/shiny-server/.Renviron # 加载应用级环境变量 volumes: shiny-data: # 命名卷(自动创建,数据持久化)
启动服务:
bashdocker-compose up -d
| 参数/路径 | 说明 |
|---|---|
| 容器内端口 | 3838(Shiny Server 监听端口,需通过 -p 映射到主机) |
| 应用根目录 | /srv/shiny-server/(本地应用需挂载至此路径) |
| Shiny 配置文件 | /etc/shiny-server/shiny-server.conf(可挂载自定义配置) |
| 系统级 R 包路径 | /usr/local/lib/R/site-library(适合全局安装) |
| 用户级 R 包路径 | ~/.local/share/R/site-library(适合非 root 用户安装) |
| 环境变量名 | 说明 | 默认值/示例 |
|---|---|---|
TZ | 容器时区设置(避免日志时间偏移) | UTC(建议设置为 Asia/Shanghai) |
R_LIBS_USER | 自定义用户级 R 包路径 | ~/.local/share/R/site-library |
R_ENVIRON_USER | 应用级 R 环境变量文件(如存储 API 密钥、数据库连接信息) | /srv/shiny-server/.Renviron |
SHINY_LOG_LEVEL | Shiny 日志级别(INFO/WARN/ERROR) | INFO |
临时安装:容器运行中通过终端执行:
bashdocker exec -it shiny-app R -e "install.packages('plotly', dependencies=TRUE)"
构建自定义镜像:通过 Dockerfile 预安装依赖:
dockerfileFROM rocker/shiny-verse:latest # 安装系统依赖(如需) RUN apt-get update && apt-get install -y libssl-dev libcurl4-openssl-dev # 安装 R 包 RUN R -e "install.packages(c('plotly', 'DT'), dependencies=TRUE)"
通过挂载 shiny-server.conf 调整服务器行为(如访问控制、超时设置),示例配置:
conf# /etc/shiny-server/shiny-server.conf run_as shiny; # 运行用户 server { listen 3838; location / { site_dir /srv/shiny-server; # 应用目录 log_dir /var/log/shiny-server; # 日志目录 directory_index on; # 启用目录浏览(无 app.R 时显示文件列表) app_init_timeout 60; # 应用初始化超时(秒) app_idle_timeout 120; # 应用闲置超时(秒) } }

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