在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
.