新聞中心
R和Docker的相遇,給R提供了并行計(jì)算施展的空間。Docker和R的相遇,也讓Docker能夠切入數(shù)據(jù)處理領(lǐng)域,有了更廣闊的應(yīng)用場(chǎng)景,本篇文章為大家詳細(xì)講解一下 Docker 中使用R優(yōu)點(diǎn)。

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)灤平免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
1:輕松開(kāi)發(fā)
OpenCPU 系統(tǒng)的旗艦是 OpenCPU 服務(wù)器:它是一個(gè)成熟且強(qiáng)大的 Linux 棧,用于在系統(tǒng)和應(yīng)用程序中嵌入 R。因?yàn)?OpenCPU 是完全開(kāi)源的,我們可以在 DockerHub 上構(gòu)建和發(fā)布??梢允褂靡韵旅顔?dòng)一個(gè)可以立即使用的 OpenCPU 和 RStudio 的 Linux 服務(wù)器(使用端口 8004 或 80):
docker run -t -p 8004:8004 opencpu/rstudio
現(xiàn)在只需在你的瀏覽器打開(kāi) http://localhost:8004/ocpu/ 和 http://localhost:8004/rstudio/ 即可!在 rstudio 中用用戶 opencpu(密碼:opencpu)登錄來(lái)構(gòu)建或安裝應(yīng)用程序。有關(guān)詳細(xì)信息,請(qǐng)參閱自述文件。
Docker 讓開(kāi)始使用 OpenCPU 變得簡(jiǎn)單。容器給你一個(gè)充分靈活的 Linux 機(jī)器,而無(wú)需在系統(tǒng)上安裝任何東西。你可以通過(guò) rstudio 服務(wù)器安裝軟件包或應(yīng)用程序,也可以使用 docker exec 進(jìn)入到正在運(yùn)行的服務(wù)器的 root shell 中:
# Lookup the container ID
docker ps
# Drop a shell
docker exec -i -t eec1cdae3228 /bin/bash
你可以在服務(wù)器的 shell 中安裝其他軟件,自定義 apache2 的 httpd 配置(auth,代理等),調(diào)整 R 選項(xiàng),通過(guò)預(yù)加載數(shù)據(jù)或包等來(lái)優(yōu)化性能。
2: 通過(guò) DockerHub 發(fā)布和部署
最強(qiáng)大的是,Docker 可以通過(guò) DockerHub 發(fā)布和部署。要?jiǎng)?chuàng)建一個(gè)完全獨(dú)立的應(yīng)用程序容器,只需使用標(biāo)準(zhǔn)的 opencpu 鏡像并添加你的程序。
出于本文的目的,我通過(guò)在每個(gè)倉(cāng)庫(kù)中添加一個(gè)非常簡(jiǎn)單的 “Dockerfile”,將一些示例程序打包為 docker 容器。例如:nabel 的 Dockerfile 包含以下內(nèi)容:
FROM opencpu/base
RUN R -e 'devtools::install_github("rwebapps/nabel")'
它采用標(biāo)準(zhǔn)的 opencpu/base 鏡像,并從 Github 倉(cāng)庫(kù)安裝 nabel。最終得到一個(gè)完全隔離、獨(dú)立的程序。任何人可以使用下面這樣的命令啟動(dòng)程序:
docker run -d 8004:8004 rwebapps/nabel
-d 代表守護(hù)進(jìn)程監(jiān)聽(tīng) 8004 端口。很顯然,你可以調(diào)整 Dockerfile 來(lái)安裝任何其它的軟件或設(shè)置你需要的程序。
容器化部署展示了 Docker 的真正能力:它可以發(fā)布可以開(kāi)箱即用的獨(dú)立軟件,而無(wú)需安裝任何軟件或依賴付費(fèi)托管的服務(wù)。如果你更喜歡專業(yè)的托管,那會(huì)有許多公司樂(lè)意在可擴(kuò)展的基礎(chǔ)設(shè)施上為你托管 docker 程序。
3: 跨平臺(tái)構(gòu)建
還有 Docker 用于 OpenCPU 的第三種方式。每次發(fā)布,我們都構(gòu)建 6 個(gè)操作系統(tǒng)的 opencpu-server 安裝包,它們?cè)?https://archive.opencpu.org 上公布。這個(gè)過(guò)程已經(jīng)使用 DockerHub 完全自動(dòng)化了。以下鏡像從源代碼自動(dòng)構(gòu)建所有棧:
-
opencpu/ubuntu-16.04
-
opencpu/debian-9
-
opencpu/fedora-25
-
opencpu/fedora-26
-
opencpu/centos-6
-
opencpu/centos-7
當(dāng) GitHub 上發(fā)布新版本時(shí),DockerHub 會(huì)自動(dòng)重建此鏡像。要做的就是運(yùn)行一個(gè)腳本,它會(huì)取回鏡像并將 opencpu-server 二進(jìn)制復(fù)制到歸檔服務(wù)器上。
分享標(biāo)題:在Docker中使用R
本文鏈接:http://www.dlmjj.cn/article/djophjo.html


咨詢
建站咨詢
