r - 使用 Docker 映像运行旧版本的 R
问题描述
我想为我的 R 工作使用旧 R 版本的 Docker 映像。所以我用 -
docker pull rocker/verse:3.3.2
现在我想将这个 docker 镜像运行为 -
docker run rocker/verse:3.3.2
这给出了以下响应-
[fix-attrs.d] applying owners & permissions fixes...
[fix-attrs.d] 00-runscripts: applying...
[fix-attrs.d] 00-runscripts: exited 0.
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] add: executing...
Nothing additional to add
[cont-init.d] add: exited 0.
[cont-init.d] userconf: executing...
ERROR: You must set a unique PASSWORD (not 'rstudio') first! e.g. run with:
docker run -e PASSWORD=<YOUR_PASS> -p 8787:8787 rocker/rstudio
[cont-init.d] userconf: exited 1.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
在此之后,它停止响应。
我也尝试使用如下密码 -
sudo docker run -e PASSWORD=abc$ -p 8787:8787 rocker/verse:3.3.2
[fix-attrs.d] applying owners & permissions fixes...
[fix-attrs.d] 00-runscripts: applying...
[fix-attrs.d] 00-runscripts: exited 0.
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] add: executing...
Nothing additional to add
[cont-init.d] add: exited 0.
[cont-init.d] userconf: executing...
[cont-init.d] userconf: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
但在那之后,即使 1 小时后我也看不到任何进展。
有没有办法通过 docker image 使用旧的 R 版本?
谢谢,
解决方案
问题是你没有告诉容器做任何事情。我可以像这样运行交互式 R 终端,所以它似乎可以正常工作:
$ docker run --rm -it rocker/verse:3.3.2 R
R version 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> myString <- "Hello, World!"
> print (myString)
[1] "Hello, World!"
请注意,我在通话R
结束时传递了命令。docker run
结合标志,这将在容器内-it
打开一个交互式终端。R
如您所见,交互式R
终端运行的是 3.3.2 版本。
无论如何,这个图像似乎工作得很好,你只需要决定你想用它做什么。
另一种选择是传递bash
而不是R
从那里运行命令。另一种选择是Dockerfile
在项目内部创建一个使用此映像的项目,FROM
并在构建时将脚本复制R
到容器中。这里列出的选项太多了,但我想你明白了。
这里有一些很好的参考资料可以帮助您入门:
[1] https://docs.docker.com/engine/reference/commandline/run/。(查看-i
和-t
选项)
推荐阅读
- python - 打印文件名列表时没有输出
- python - rps分类问题om pytorch(两种图像格式)
- git - git clone 使用 gitlab 自签名 CA 抛出错误:请求的域名与服务器的证书不匹配
- spring-boot - 如何更改 SpringBoot 执行器记录器 api 的时区?
- elixir - 在 Elixir 中迭代范围以调用具有这些数字的函数
- javascript - 从 C# 中的计划控制台程序以自动电子邮件形式发送 Jquery 插件输出
- botframework - 删除了作为 Web App bot 一部分的 azure search
- blazor - 如何在 Blazor 中创建计时器组件并从组件或其他页面外部启动它
- java - 数据被添加为新数据,而不是更新 firebase firestore
- laravel - 将 Laravel 7 升级到 8