在摇滚/shinydocker中部署shiny的应用程序

那么,我是新来的Docker ,我需要在Docker容器中实现一个Shiny应用程序。

我有从https://hub.docker.com/r/rocker/shiny/ ,包括Shiny Server ,但我不知道如何部署我的应用程序在服务器中的形象。

我想在服务器上部署应用程序,为我的应用程序安装所需的包到Docker中,保存更改并导出图像/容器。

正如我所说,我是新的在Docker ,我不知道它是如何工作的。

任何想法?

链接( https://hub.docker.com/r/rocker/shiny/ )介绍了如何部署shiny的服务器。 最简单的方法是:docker运行 – rm -p 3838:3838摇杆/shiny

如果你想扩展shiny的服务器,你可以编写你自己的Dockerfile,并以shiny的图像作为基础图像( https://docs.docker.com/engine/reference/builder/

Dockerfile:从摇杆/shiny:最新

我想你应该开始在一个特定的文件夹中创build一个Dockerfile,看起来像这样:

 FROM rocker/shiny:latest RUN echo 'install.packages(c("package1","package2", ...), \ repos="http://cran.us.r-project.org", \ dependencies=TRUE)' > /tmp/packages.R \ && Rscript /tmp/packages.R EXPOSE 3838 CMD ["/usr/bin/shiny-server.sh"] 

然后进入这个文件夹并build立你的图像,使用这个命令给它一个名字:

 docker build -t your-tag . 

最后,一旦你的图像被创build,你可以创build一个容器,如果你不忘记映射卷和端口,你应该能够在localhost:3838find它,从包含srv的文件夹启动以下命令文件夹:

 docker run --rm -p 3838:3838 -v $PWD/srv/shinyapps/:/srv/shiny-server/ -v $PWD/srv/shinylog/:/var/log/shiny-server/ your-tag 

正如Docker文档中的https://hub.docker.com/r/rocker/shiny/所述 ,你可能想用-d选项以独立模式启动它,并将它映射到主机的80端口真正的部署。