[英]RSelenium and Docker on EC2
我的最終目標是能夠通過rstudio我的 EC2 實例 (AWS) 使用rselenium 。
為此,我讀到建議在虛擬機上使用和安裝 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 “連接到遠程服務器” checkError(res) 中的錯誤:httr 調用中的未定義錯誤。 httr 輸出:已達到超時:10001 毫秒后連接超時
我遵循了教程中給出的確切步驟,所以我真的不知道出了什么問題。
非常感謝任何幫助!
M。
以下對我有用。
創建一個安裝了 Docker 的 EC2 Ubuntu 實例。 我沒有使用 Windows。
在EC2實例上運行selenium docker鏡像如下
docker run -d -p 4445:4444 selenium/standalone-firefox:2.53.0
通過在安全組中創建適當的條目,確保從運行 R 的 IP 地址打開端口 4445。
在可以看到 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 控制台獲得,並且是實例的公共 DNS 名稱。 如果您碰巧在另一台 AWS 機器上運行 R,那么您可能需要使用私有 DNS 地址。
[編輯添加在雲端運行 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")
最后運行 R 代碼來訪問 Selenium 實例。
library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "IP address of the Selenium container", port = 4445L)
remDr$open()
謝謝@awchisholm! 正如您所解釋的,我需要在我的 EC2 實例上而不是在我的本地機器上安裝 docker。 問題解決了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.