在HarryZhu写的系列的docker文章后,我也开始心动了,准备尝试一下。周末在家下了半天,终于下载成功了,而后也跑起来。Docker以前只是据说是一个容器技术,微型虚拟机,而后在这以前并无接触过,因此不得不硬着头皮看英文的帮助文档,借助SF的这个好用markdown来作笔记,充当专栏文章。html
谢谢 @HarryZhu 的指导,能够采用Daocloud镜像加速服务,省得要下一下午。。git
本人在安装的时候主要碰到的问题就是下载不下来。不过仍是有一些小技巧的。下面来简单说一下,防止后来人入坑。PS:英文好的同窗能够按照这个教程来:https://docs.docker.com/windows/step_one/github
我默认看这篇文章的都是Windows党。。docker
既然是Windows党,那就要折腾一下了。首先是须要下一个toolbox。由于是放在amazonAWS云服务器上的,因此会间歇性下载失败,我建议去github的release页面找到相应的版本,右键复制连接,而后用迅雷下载,速度可能会出乎你的想象。:-)ubuntu
这是一个头痛的问题。目前有两个较火的image,一个是rocker开发的,另一个是quantumobject开发的,网址分别是 https://hub.docker.com/r/rocker/shiny/ 和 https://hub.docker.com/r/quantumobject/d... 。我去了对应的github看了一下,发现quantumobject最近才更新的,因此决定用最新的。来到对应的Docker Hub地址,按照步骤输入代码,剩下的就是拼人品和网速的时候了。
代码仍是要贴一贴的:segmentfault
$ docker run -d -p 3838:3838 quantumobject/docker-shiny
更多有用的命令请对应参考 rocker/Rstudio-server/wikiwindows
恭喜你进入到这一步,相信也是跟我同样等了不知道多久才下好了。这个docker image一共是346M,因此要作好心理准备。bash
你须要知道的两个开始有用的命令:服务器
$ docker-machine ip default $ docker ps $ dokcer images
第一条命令是显示shiny-server的端口在哪里,个人是 192.168.99.100
,意味着我须要在这里http://192.168.99.100:3838/
查看shiny的效果。打开主页,你发现一个欢迎页面。这个实际上是开发这个docker image的做者写的一个index.html,我后面会讲到如何发现的。
第二条命令是查看机器的ID CONTAINER ID
用于进入root进行下一步操做。
第三条命令是查看目前docker里面的打包好的image。markdown
知道了ID后就能够进行相应的操做了。小赵个人container ID很是奇怪,是4b13fe05ac8e
.可是没有关系,输入下面命令就能够了
$ docker-machine ls $ docker-machine ssh default $ docker exec -it 4b13fe05ac8e bash root@4b13fe05ac8e:/# cd srv/shiny-server root@4b13fe05ac8e:/srv/shiny-server# ls examples index.html sample-apps
能够看到在shiny-server的文件夹下有index.html,另外还有两个文件夹,你们能够去对应的端口看看:http://192.168.99.100:3838/examples/
,会发现有十几个shiny的例子,对着例子研究一遍,相信就能作初步作一个shinyapp了。
进入到了容器内部后,接下来就是Linux的操做命令了,小赵来记录几条有用的命令,你们能够试一试,玩一玩
#查看当前文件夹 ls -F #切换到上一级文件夹 cd .. #查看文件 cat <文件名> head <文件名> #关机 shutdown -h now #还能够定时关机 shutdown -h hours:minutes
$ docker ps -a # 注意names $ docker stop backstabbing_goodall # 中止镜像 $ docker start backstabbing_goodall # 启动镜像 #`-i` 表示须要交互支持。这里没有,故不须要加上。 Ctrl + D #退出虚拟机
在virtualBox里面设置共享位置和名称,不要自动挂载
进入虚拟机中 docker-machine ssh default
建立一个文件夹 mkdir /home/share/
输入命令,创建主机与虚拟机的共享 sudo mount -t vboxsf share /home/share
.这里的share是在虚拟机设置的时候取的名字,通常默认是share。
在主机中丢入文件,去虚拟机中及时查看。cd /home/share
而后 ls
就能看到共享的文件。
虚拟机与容器之间创建文件共享,输入 docker run -d -p 3838:3838 -v /home/share:/root/share quantumobject/docker-shiny
.
进入容器内的查看共享的文件 docker exec -it <CONTAINER ID> bash
. 或者<name> docker exec -it backstabbing_goodall
PS:经过docker ps
来查看容器的ID和name。
验证:cd /srv/share
而后输入 ls
,若是出现共享的文件就说明成功了 :)
如果Ubuntu的容器运行:
docker run -it -v /home/share:/usr/share ubuntu:14.04 /bin/bash
.