我想在我的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版本?
谢谢
答案 0 :(得分:1)
问题是您没有告诉容器做任何事情。我可以像这样运行一个交互式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
选项)