紀錄使用過程
centos 6 docker 安裝
- 加入docker套件
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
2.利用yum 安裝docker
yum -y install docker-io
3.啟動docker
service docker start #啟動一次
chkconfig docker on #開機時就默認啟動docker
4.下載R的docker
sudo docker pull r-base
5.設定R plumberAPI 需執行的檔案或程式碼
R_main.r
library(plumber)
r <- plumb(“R_controller.R”)
r$run(port=80, host=”0.0.0.0")
R_controller.r
#* Echo back the input
#* @param msg The message to echo
#* @get /echo
function(msg=””){
list(msg = paste0(“The message is: ‘“, msg, “‘“))
}#* Plot a histogram
#* @png
#* @get /plot
function(){
rand <- rnorm(100)
hist(rand)
}#* Return the sum of two numbers
#* @param a The first number to add
#* @param b The second number to add
#* @post /sum
function(a, b){
as.numeric(a) + as.numeric(b)
}
準備好後 可以開始建立自己的docker
檔案名稱:Dockerfile
FROM r-base #選擇基礎docker是哪一個
RUN apt-get update -qq && apt-get install -y \ #建立API所需的linux套件
libssl-dev \
libcurl4-gnutls-devRUN R -e “install.packages(‘plumber’)” #預先安裝好plumber
##RUN install2.r plumber
COPY R* / #複製當下目錄裡以R為開頭的文件
EXPOSE 80 #設定docker對外的port
CMD [“Rscript”, “R_main.r”] #啟動docker時自動執行
tip:Dockerfile, R_controller.R, R_main.r需要放在同一個資料夾
建立docker
sudo docker build -t plumber-demo .
啟動docker
docker run — rm -p 80:80 plumber-demo
docker run — rm -d -p 80:80 plumber-demo #啟動後在背景執行
在其他位置連接API
參考網頁