Linux系统使用Docker安装RStudio服务并实现任意浏览器远程访问
文章目录
- 前言
- 1. 安装RStudio Server
- 2. 本地访问
- 3. Linux 安装cpolar
- 4. 配置RStudio server公网访问地址
- 5. 公网远程访问RStudio
- 6. 固定RStudio公网地址
前言
RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问,从而将 RStudio IDE 的强大功能和工作效率带到基于服务器的集中式环境中。
下面介绍在Linux docker中安装RStudio Server并结合cpolar内网穿透工具,实现远程访问,docker方式安装可以避免很多问题,一键安装,如设备没有安装docker,需提前安装docker
1. 安装RStudio Server
执行docker 一键启动命令,其中-e PASSWORD=设置自己的登录密码,端口默认8787,其他参数默认
docker run -itd -p 8787:8787 --name rstudio -e PASSWORD=自己设置密码 --privileged=true -v /srv/shinyapps/:/home/rstudio/shinyapps -v /srv/shinylog/:/home/rstudio/shinylogs rocker/rstudio
执行后,会自动下载镜像,然后启动容器,完成后,输入docker ps 即可看到运行的RStudio容器,运行挂载的端口为:8787,docker安装就完成了,非常简单快捷,且省去了繁琐的环境配置

2. 本地访问
上面安装完成后,访问Linux 8787端口,如局域网访问,需检查一下防火墙,这里使用Linux 内部浏览器访问,可以看到成功访问

输入用户名: rstudio 和自己设置的密码,即可登录成功,这样就完成了Linux RStudio Server安装且正常访问,下面安装cpolar 工具,实现在任意设备浏览器也可以访问RStudio

3. Linux 安装cpolar
上面我们成功安装了RStudio server,并局域网访问ok,下面我们在Linux安装cpolar内网穿透工具,通过cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤
cpolar官网地址: https://www.cpolar.com
- 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- 向系统添加服务
sudo systemctl enable cpolar
- 启动cpolar服务
sudo systemctl start cpolar
cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

4. 配置RStudio server公网访问地址
点击左侧仪表盘的隧道管理——创建隧道,创建一个RStudio 的cpolar 公网地址隧道!
- 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
- 协议:选择http
- 本地地址:8787(docker 挂载的端口)
- 域名类型:免费选择随机域名
- 地区:选择China vip
点击创建

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

5. 公网远程访问RStudio
使用上面的https公网地址在任意设备的浏览器访问,即可成功看到我们RStudio 界面,这样一个公网地址且可以远程访问就创建好了,新地址访问,可能需要重新登录

输入账号密码,即可登录成功,这样一个远程地址就创建好了,在cpolar中,默认是随机地址,下面我们设置固定地址

6. 固定RStudio公网地址
由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】
注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】
登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

保留成功后复制保留成功的二级子域名的名称

返回登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
点击更新(注意,点击一次更新即可,不需要重复提交)

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

最后,我们使用固定的公网地址访问RStudio工具,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,新地址访问,可能需要重新登录!

相关文章:
Linux系统使用Docker安装RStudio服务并实现任意浏览器远程访问
文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问…...
【原创】springboot+mysql法律咨询网设计与实现
个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…...
Vue 应用实例的关键方法与配置案例二
目录 createApp createSSRApp app.mount app.unmount app.component app.directive Vue3.X自定义全局指令 Vue2.X自定义全局指令 app.use app.mixin 非 VIP 用户能够免费下载博文资源 createApp 详见上一章节:Vue 应用实例的关键方法与配置案例一-CSDN博客 createSS…...
Java面试题--JVM大厂篇之破解 JVM 性能瓶颈:实战优化策略大全
目录 引言: 正文: 1. 常见的JVM性能问题 频繁的GC导致应用暂停 内存泄漏导致的内存不足 线程争用导致的CPU利用率过高 类加载问题导致的启动时间过长 2. 优化策略大全 2.1 代码层面的优化 2.1.1 避免不必要的对象创建 2.1.2 优化数据结构的选择 2.1.3 使用并发工具…...
Apache Curator 创建节点时,如果节点存储就会抛出异常吗?
在Apache Curator中,创建节点时,如果该节点已经存在,并且你的代码没有正确处理这种情况,那么会抛出NodeExistsException异常。这是ZooKeeper客户端库(包括Curator)的常见行为,因为它需要确保Zoo…...
【食物链】
题目 代码 #include<bits/stdc.h> using namespace std; const int N 5e410; int n, k; int p[N], d[N]; int find(int x) {if(p[x] ! x){int root find(p[x]);d[x] d[p[x]];p[x] root;}return p[x]; } int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)…...
【RN】实现markdown文本简单解析
需求 支持文本插入,比如 xxx {product_name} xxx ,如果提供了product_name变量的值为feedback,则可以渲染出 xxx feedback xxx。支持链接解析,比如 [baidu](https://www.baidu.com/),可以直接渲染成超链接的形式。支持…...
webpack plugin
webpack plugin webpack完成的复杂炫酷的功能依赖于插件机制,webpack的插件机制依赖于核心的库, tapable tapable是一个类似于nodejs的eventEmitter的库, 主要是控制钩子函数的发布喝定于,当时,tapable提供您的hook机…...
【busybox记录】【shell指令】date
目录 内容来源: 【GUN】【date】指令介绍 【busybox】【date】指令介绍 【linux】【date】指令介绍 使用示例: 打印前天的日期: 打印三个月零一天后的日期: 打印当年圣诞节的年数: 打印当前的全月名称和月的日期: 要打印一个没有前导零的日期&…...
同态加密和SEAL库的介绍(八)性能
本篇会对比三种加密方案,同时每种方案配置三种参数。即九种情况下的各个操作的性能差异,为大家选择合适的方案和合适的参数提供参考。表格中所有时长的单位均为微妙,即 。 当然数据量比较大,为了方便大家查找,…...
华为OD-D卷数的分解
给定一个正整数n,如果能够分解为m(m > 1)个连续正整数之和,请输出所有分解中,m最小的分解。 如果给定整数无法分解为连续正整数,则输出字符串"N"。 输入描述: 输入数据为一整数,范围为(1, 2^3…...
rk3588 low_delay_net_display注意事项
low_delay_net_display例子默认只支持YUV420和RGB888,如果需要支持YUV422,请添加下面部分: rk3588_nvr/build/app/low_delay_net_display$ git diff v4l2HdmiRX.cpp diff --git a/app/low_delay_net_display/v4l2HdmiRX.cpp b/app/low_delay_net_displa…...
Spring Boot 快速入门样例【后端 3】
Spring Boot 入门:从零到一构建你的第一个应用 Spring Boot 作为一个流行的Java框架,以其“习惯优于配置”的理念极大地简化了Spring应用的开发和部署过程。本文将带你一步步创建一个简单的Spring Boot应用,从环境准备到项目创建,…...
Linux云计算 |【第二阶段】NETWORK-DAY2
主要内容: VLAN技术、TRUNK模式、链路聚合、路由器 一、VLAN技术应用 广播域指接受同样广播消息的节点的集合,如在该集合中的任何一个节点传输一个广播帧,则所有其它能收到这个帧的节点都被认为是该广播帧的一部分; 交换机的所有…...
Java面试题(基础篇)③
目录 一, 与 equals 的区别? 二,接口和抽象类的区别? 三,请说出几个常见的异常? 四,请问你对Java 反射有了解吗? 五,浅拷贝和深拷贝区别? 一,…...
Qt动态调用 - QMetaObject::invokeMethod
QMetaObject::invokeMethod 动态调用是 Qt 的元对象系统的一项强大功能,它允许在运行时通过名称调用槽函数、信号和普通成员函数。 这种能力对于构建灵活和可扩展的应用程序非常有用,比如插件系统或脚本接口。 动态调用方法 Qt 提供了 QMetaObject::i…...
html+css+js网页设计 星享咖啡6个页面(带js) ui还原度90%
htmlcssjs网页设计 星享咖啡6个页面(带js) ui还原度90% 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等…...
docker上传镜像至阿里云
1、安装wsl2 WSL2安装(详细过程) 2、安装docker Docker在Windows下的安装及使用 3、创建私人阿里云镜像库 如何创建私人阿里云镜像仓库?(保姆级) 4、如何删除容器 (1) 查找正在使用该图像的容器 docker ps -a --filte…...
POS刷卡开发源码之语音播报-CyberWinApp-SAAS 本地化及未来之窗行业应用跨平台架构
一、终端语音提醒的好处 1. 增强信息传递的有效性:在人们忙碌或者注意力分散时,语音提醒能够直接穿透噪音和干扰,确保重要信息被准确接收。 2. 提高操作的便捷性:用户无需停下手中的工作去查看屏幕或阅读文字,直接通过…...
jupyter notebook魔法命令
%xmode 魔法命令来控制异常报告: 输入魔法命令:在 IPython 或 Jupyter Notebook 的一个新单元格中,输入以下命令之一来设置异常报告模式: 切换到 Plain 模式(简洁输出): %xmode Plain切换回 Con…...
G-Helper华硕笔记本控制中心:告别臃肿,拥抱极致轻量化
G-Helper华硕笔记本控制中心:告别臃肿,拥抱极致轻量化 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF…...
从67到89:我是如何用YOLO-MASK清洗COCO羊数据集提升模型精度的
从67到89:YOLO-MASK数据清洗实战与COCO羊数据集优化全记录 去年夏天,当我第一次在COCO羊数据集上训练YOLOv5模型时,那些徘徊在67%左右的mAP数值就像炎热的天气一样令人烦躁。作为一个长期从事计算机视觉项目的工程师,我深知数据质…...
5 款主流开源 SDD 框架深度体验与 PK
强大的 AI Coding 似乎无时无刻不在制造新的焦虑:程序员、IDE、甚至软件工程都不再被需要,“会说话就会开发软件”。这是极端且不负责任的。毕竟,还有更多需要逻辑严密的商业软件系统。 强如 OpenAI,在使用Codex开发内部系统时依…...
FastAPI中间件性能优化:从GZip压缩到异步日志的7个提速技巧
FastAPI中间件性能优化:从GZip压缩到异步日志的7个提速技巧 当你的FastAPI应用开始处理每秒数千甚至百万级的请求时,中间件可能成为性能瓶颈的隐形杀手。本文将揭示如何通过7个关键技巧,让你的中间件处理速度提升300%以上。 1. 理解中间件的性…...
Qwen3.5-9B Visio图表智能生成:根据文本描述自动创建流程图与架构图
Qwen3.5-9B Visio图表智能生成:根据文本描述自动创建流程图与架构图 1. 引言:告别手动绘图的烦恼 你有没有遇到过这样的情况?开会讨论完一个业务流程,需要把它画成流程图;或者设计了一个系统架构,得在Vis…...
Open UI5 源代码解析之878:ObjectAttribute.js
源代码仓库: https://github.com/SAP/openui5 源代码位置:src\sap.m\src\sap\m\ObjectAttribute.js ObjectAttribute.js 深度分析与项目作用说明 文件定位与整体结论 ObjectAttribute.js 位于 sap.m 库内部,是 sap.m.ObjectAttribute 控件的核心实现文件。它的职责并不…...
解锁NVMe性能:Ventoy突破高速存储启动限制的技术实践
解锁NVMe性能:Ventoy突破高速存储启动限制的技术实践 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 在企业级服务器和高端工作站环境中,你是否遇到过NVMe(非易失性…...
稳定性与生态性的平衡:Windows 11 LTSC系统微软商店完整解决方案
稳定性与生态性的平衡:Windows 11 LTSC系统微软商店完整解决方案 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore Windows 11 LTSC…...
5个提升效率技巧:Mac Mouse Fix让普通鼠标实现专业级操作体验
5个提升效率技巧:Mac Mouse Fix让普通鼠标实现专业级操作体验 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 当你在macOS系统中使用…...
从销售报表分析到供应链数据优化,SpreadJS 透视表插件全场景应用指南
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
