原文:http://www.xueqing.tv/cms/article/247
Docker是最近炒得很火熱的一門技術,在網上可以找到關於它的介紹文章,比如《Docker到底是什么?為什么它這么火!》和《開發漫談:千萬別說你不了解Docker!》。但這些文章都是從IT開發人員的角度來介紹的,讓我們這些搞數據分析的人摸不着頭腦。
其實Docker技術也可以用在數據分析和數據產品的開發中,比如Harry Zhu寫的打造數據產品的快速原型:Shiny的Docker之旅,以及肖楠在統計之都海外沙龍介紹的用docker技術和R做可重復研究的liftr包。
個人覺得,Docker技術能給數據科學家帶來的好處之一,是能夠幫助我們快速搭建分析中所用到的環境,小到不同版本的R,大到hadoop、Spark集群
本系列文章其實就是想從數據科學家的角度,跟大家一起來探索Docker技術。第一篇講的是在Windows下搭建Docker環境,后面將陸續講解怎么用Docker搭建RStudio Server、Hadoop、Spark等環境
文章末尾還有配套的視頻教程,里面有更多細節的演示。
下載安裝Docker Toolbox
Docker Toolbox的官方網站是https://www.docker.com/products/docker-toolbox,選Windows版的下載,如果下載不了,可以點這里下載。
下載完之后,雙擊程序,開始安裝,跟其他軟件的安裝一樣,但有一點需要注意,當出現下面的畫面時,要把 Install VirtualBox with NDIS5 driver[default NDIS6] 這個選項勾上
配置Git Bash
安裝Docker Toolbox時安裝的Docker Quickstart Terminal和Kitematic圖形界面並沒有用,我們就別折騰了,還是用Git Bash來啟動Docker吧。在安裝Docker Toolbox時也同時安裝了Git for Windows,我們現在只會用到里面的Git Bash,它是類似Linux的命令行終端,在里面可以用很多Linux命令,比如ls、mv等,對Linux命令不熟的可以看看我們網站上的《Linux命令行入門》課程。在開始菜單里可以看到Git Bash的快捷方式
在使用Docker前,要先創建docker machine,它其實是台虛擬機,不過在使用它的時候,你可能根本察覺不出來它是虛擬的。默認情況下,docker machine的所有文件都會保存在用戶的根目錄下,一般是在C盤,如果就用默認的位置,C盤的空間會越來越小,所以最好還是換個地方。
我們要修改Bash的配置文件來修改默認的docker machine保存位置,打開Bash以后,執行notepad .bash_profile
,會調用記事本打開配置文件.bash_profile,如果不存在該文件,就選擇新建這個文件。(這里假設你不會用bash里的編輯器vim,如果你會用vim,就執行命令vim .bash_profile
)
假設我想把docker machine保存在D:\docker
,那么先新建這個目錄,然后在.bash_profile里添加下面這行
export MACHINE_STORAGE_PATH='D:\docker'
創建docker machine
在使用docker的時候,會需要從docker的網站下載鏡像文件,下載速度可能會很慢。還好阿里雲為我們提供了加速器。登錄阿里雲的開發者平台,進入管理中心
點左側導航欄的加速器,然后在右邊選Windows
阿里雲已經給我們提供了創建裝有docker環境的linux虛擬機的語句,但是這條語句不能直接用,因為我們在前面已經修改了虛擬機默認的位置。需要在這條命令里加上 --storage-path
,或者簡寫為-s
,后面加上路徑,像下面這樣:
docker-machine -s "D:\docker" create --engine-registry-mirror=https://s5q5zo4h.mirror.aliyuncs.com -d virtualbox default
但是上面這條命令是我的賬號生成的,你需要自己注冊個阿里雲賬號,找到相應的命令
回到bash里執行上面的語句創建docker machine,發現因為功夫牆的阻攔,無法下載boot2docker.iso文件,程序中斷。幸好在Docker Toolbox的安裝目錄下就包含了這個文件,把它復制到D:\docker\cache
下
再來創建docker machine就成功了
這台docker machine創建后就啟動了,如果下次我們再打開電腦,想要啟動docker machine,可以打開Git Bash,然后執行
docker-machine start
來啟動docker machine。
進入docker環境
我們現在的Bash還在Windows里,接下來執行
docker-machine ssh default
如果看到下面的畫面,那么恭喜你,你已經進入了docker的世界!
這其實是通過ssh登錄到了VirtualBox虛擬機里的Linux系統。如果覺得Git Bash提供的終端太簡陋,你也可以用Xshell、SecureCRT等SSH工具,在Git Bash里執行
docker-machine ip default
可以看到,docker machine的IP是192.168.99.100,用SSH工具登錄它,用戶名是docker
,密碼是tcuser
下一講,我會跟大家一起探索利用Docker來搭建RStudio Server環境。