好吧,我是Docker
的新人,我需要在Docker容器中实现一个Shiny应用。
我有来自https://hub.docker.com/r/rocker/shiny/的图片,其中包含Shiny Server
,但我不知道如何在服务器中部署我的应用。
我想在服务器中部署应用程序,将我的应用程序所需的软件包安装到Docker中,保存更改并导出图像/容器。
正如我所说,我是Docker
的新人,我不知道它是如何运作的。
有什么想法吗?
答案 0 :(得分:12)
我想你应该首先在特定文件夹中创建一个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"]
然后进入此文件夹并构建您的图像,使用以下命令为其命名:
docker build -t your-tag .
最后,构建映像后,您可以创建一个容器,如果您不忘记映射卷和端口,您应该能够在localhost:3838找到它,并从该文件夹启动以下命令包含srv文件夹:
docker run --rm -p 3838:3838 -v $PWD/srv/shinyapps/:/srv/shiny-server/ -v $PWD/srv/shinylog/:/var/log/shiny-server/ your-tag
如以下地址https://hub.docker.com/r/rocker/shiny/中的Docker文档中所述,您可能希望使用-d选项以分离模式启动它,并将其与主机的端口80一起映射以进行实际部署。
答案 1 :(得分:4)
链接(https://hub.docker.com/r/rocker/shiny/)介绍了如何部署闪亮的服务器。 最简单的方法是: 码头运行--rm -p 3838:3838摇杆/闪亮
如果你想扩展闪亮的服务器,你可以编写自己的Dockerfile并以闪亮的图像作为基本图像开始。(https://docs.docker.com/engine/reference/builder/)
Dockerfile: 来自摇滚/闪亮:最新