Docker-Shiny使用笔记1

写在前面的话

HarryZhu写的系列的docker文章后,我也开始心动了,准备尝试一下。周末在家下了半天,终于下载成功了,而后也跑起来。Docker以前只是据说是一个容器技术,微型虚拟机,而后在这以前并无接触过,因此不得不硬着头皮看英文的帮助文档,借助SF的这个好用markdown来作笔记,充当专栏文章。html

安装问题

谢谢 @HarryZhu 的指导,能够采用Daocloud镜像加速服务,省得要下一下午。。git

本人在安装的时候主要碰到的问题就是下载不下来。不过仍是有一些小技巧的。下面来简单说一下,防止后来人入坑。PS:英文好的同窗能够按照这个教程来:https://docs.docker.com/windows/step_one/github

Docker toolbox下载问题

我默认看这篇文章的都是Windows党。。docker

既然是Windows党,那就要折腾一下了。首先是须要下一个toolbox。由于是放在amazonAWS云服务器上的,因此会间歇性下载失败,我建议去github的release页面找到相应的版本,右键复制连接,而后用迅雷下载,速度可能会出乎你的想象。:-)ubuntu

Docker-shiny下载问题

这是一个头痛的问题。目前有两个较火的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 #退出虚拟机

共享文件夹

  1. 在virtualBox里面设置共享位置和名称,不要自动挂载

  2. 进入虚拟机中 docker-machine ssh default

  3. 建立一个文件夹 mkdir /home/share/

  4. 输入命令,创建主机与虚拟机的共享 sudo mount -t vboxsf share /home/share .这里的share是在虚拟机设置的时候取的名字,通常默认是share。

  5. 在主机中丢入文件,去虚拟机中及时查看。cd /home/share 而后 ls就能看到共享的文件。

  6. 虚拟机与容器之间创建文件共享,输入 docker run -d -p 3838:3838 -v /home/share:/root/share quantumobject/docker-shiny .

  7. 进入容器内的查看共享的文件 docker exec -it <CONTAINER ID> bash. 或者<name> docker exec -it backstabbing_goodall PS:经过docker ps来查看容器的ID和name。

  8. 验证:cd /srv/share 而后输入 ls,若是出现共享的文件就说明成功了 :)

如果Ubuntu的容器运行: docker run -it -v /home/share:/usr/share ubuntu:14.04 /bin/bash .

参考资料:http://docs.daocloud.io/faq/docker101

相关文章
相关标签/搜索