EC2 上的 RSelenium 和 Docker
RSelenium and Docker on EC2
我的最终目标是能够使用 rselenium through rstudio 我的 EC2 实例 (AWS)。
为此,我读到建议在虚拟机上使用和安装 docker。所以我在这里遵循了 John D Harrison 给出的所有步骤:
https://rpubs.com/johndharrison/RSelenium-Docker
一切都很顺利,除了最后我在 EC2
实例上输入 RStudio
时。
因为当我尝试连接到远程服务器时出现以下错误:
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L)
remDr$open()
1 "Connecting to remote server" Error in checkError(res) :
Undefined error in httr call. httr output: Timeout was reached:
Connection timed out after 10001 milliseconds
我完全按照教程中给出的步骤操作,所以我真的不知道哪里出了问题。
非常感谢任何帮助!
男.
编辑1:
请在下面找到我到目前为止的截图:
我使用的 EC2 实例如下:
以下适合我。
创建一个安装了 Docker 的 EC2 Ubuntu 实例。我没有使用 Windows.
运行EC2实例上的selenium docker镜像如下
docker run -d -p 4445:4444 selenium/standalone-firefox:2.53.0
通过在安全组中创建适当的条目,确保端口 4445 从您所在的 IP 地址打开 运行ning R。
在我可以看到 EC2 实例的台式机上,使用此 R 代码连接...
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "ec2-xxx.eu-west-1.compute.amazonaws.com", port = 4445L)
remDr$open()
#[1] "Connecting to remote server"
#$applicationCacheEnabled
#[1] TRUE
#$rotatable
#[1] FALSE
#$handlesAlerts
#[1] TRUE
#...
注意 EC2 实例的地址是 "ec2..."。该地址可从 AWS 控制台获得,是实例的 public DNS 名称。如果您恰好在另一台 AWS 机器上 运行ning R,那么您可能需要使用私有 DNS 地址。
[编辑以在云中为 运行ning Rstudio 添加说明]
找到Selenium容器的IP地址。一种方法是按如下方式登录
docker exec -it <nameofthecontainer> bash
hostname -i
exit
对于与 Selenium 在同一台 EC2 机器上的 运行 Rstudio,一种选择是使用 Docker。好的形象是rocker/rstudio
。
执行以下操作。
docker run -d -p 8787:8787 -e PASSWORD=<password> --name rstudio rocker/rstudio
确保端口 8787 对您开放,您可以从那里访问 Rstudio。在实例的安全组中添加条目以执行此操作。
要在 Rstudio docker 容器中安装 RSelenium,请执行以下操作。
docker exec rstudio bash
apt-get update
apt-get install -y libxml2-dev
exit
找到 Rstudio GUI 的 URL - 它会是这样的
http://ec2-xxx:8787
用户名是 rstudio,密码是您启动容器时指定的密码。
从 Rstudio 安装 RSelenium 包。
install.packages("RSelenium")
最后 运行 访问 Selenium 实例的 R 代码。
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "IP address of the Selenium container", port = 4445L)
remDr$open()
谢谢@awchisholm!正如您所解释的,我需要在我的 EC2 实例上而不是在我的本地计算机上安装 docker。问题已解决!
我的最终目标是能够使用 rselenium through rstudio 我的 EC2 实例 (AWS)。
为此,我读到建议在虚拟机上使用和安装 docker。所以我在这里遵循了 John D Harrison 给出的所有步骤: https://rpubs.com/johndharrison/RSelenium-Docker
一切都很顺利,除了最后我在 EC2
实例上输入 RStudio
时。
因为当我尝试连接到远程服务器时出现以下错误:
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L)
remDr$open()
1 "Connecting to remote server" Error in checkError(res) : Undefined error in httr call. httr output: Timeout was reached: Connection timed out after 10001 milliseconds
我完全按照教程中给出的步骤操作,所以我真的不知道哪里出了问题。
非常感谢任何帮助!
男.
编辑1:
请在下面找到我到目前为止的截图:
我使用的 EC2 实例如下:
以下适合我。
创建一个安装了 Docker 的 EC2 Ubuntu 实例。我没有使用 Windows.
运行EC2实例上的selenium docker镜像如下
docker run -d -p 4445:4444 selenium/standalone-firefox:2.53.0
通过在安全组中创建适当的条目,确保端口 4445 从您所在的 IP 地址打开 运行ning R。
在我可以看到 EC2 实例的台式机上,使用此 R 代码连接...
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "ec2-xxx.eu-west-1.compute.amazonaws.com", port = 4445L)
remDr$open()
#[1] "Connecting to remote server"
#$applicationCacheEnabled
#[1] TRUE
#$rotatable
#[1] FALSE
#$handlesAlerts
#[1] TRUE
#...
注意 EC2 实例的地址是 "ec2..."。该地址可从 AWS 控制台获得,是实例的 public DNS 名称。如果您恰好在另一台 AWS 机器上 运行ning R,那么您可能需要使用私有 DNS 地址。
[编辑以在云中为 运行ning Rstudio 添加说明]
找到Selenium容器的IP地址。一种方法是按如下方式登录
docker exec -it <nameofthecontainer> bash
hostname -i
exit
对于与 Selenium 在同一台 EC2 机器上的 运行 Rstudio,一种选择是使用 Docker。好的形象是rocker/rstudio
。
执行以下操作。
docker run -d -p 8787:8787 -e PASSWORD=<password> --name rstudio rocker/rstudio
确保端口 8787 对您开放,您可以从那里访问 Rstudio。在实例的安全组中添加条目以执行此操作。
要在 Rstudio docker 容器中安装 RSelenium,请执行以下操作。
docker exec rstudio bash
apt-get update
apt-get install -y libxml2-dev
exit
找到 Rstudio GUI 的 URL - 它会是这样的
http://ec2-xxx:8787
用户名是 rstudio,密码是您启动容器时指定的密码。
从 Rstudio 安装 RSelenium 包。
install.packages("RSelenium")
最后 运行 访问 Selenium 实例的 R 代码。
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "IP address of the Selenium container", port = 4445L)
remDr$open()
谢谢@awchisholm!正如您所解释的,我需要在我的 EC2 实例上而不是在我的本地计算机上安装 docker。问题已解决!