摘要: Docker容器那麼強大?能夠應用道數據科學領域?看來學習一下!
Docker容器是經過虛擬化開發和部署應用程序的一種愈來愈流行的方式,它對數據科學家有用嗎?固然,本指南就會向你介紹它的做用,並手把手教你快速入門。python
Docker是一種愈來愈流行的,使在容器中開發、部署和運行應用程序變得更容易的工具。由於它們容許開發人員將應用程序與它所需的全部部分(如庫和其餘依賴項)打包,並將其做爲一個包打包,這樣就能夠幫助開發人員更簡單的使用。你確定會有這樣的疑問:這是軟件工程師經常使用的工具,可是數據科學家如何使用這個強大的工具呢?鑑於你有相似的疑問,咱們就先來討論一下想在數據科學中使用Docker的一些緣由。docker
一、再現性ubuntu
Docker對於數據科學家或者是軟件工程師最大的吸引力就是它的可再現性。除了可以共享Docker鏡像自己以外,理論上還能夠經過共享python腳本與他人共享Docker內部的數據。簡單來講,你的同時能夠運行這個腳原本查看Docker鏡像中的內容。服務器
二、時間成本框架
Docker沒必要安裝單獨的軟件包,由於它們都被包含在Docker鏡像自己中,因此很節省時間。此外,Docker容器的啓動時間約爲50ms,比運行傳統的虛擬機快得多。分佈式
三、靈活性工具
它是一個很是靈活的工具,由於在Docker庫中能夠快速建立並運行任何Docker映像的軟件。學習
四、自帶測試環境測試
Docker在將軟件環境託管到活動服務器以前對其進行測試是很是有用,能夠將Docker容器配置爲與服務器環境相同,這可讓測試變得更簡單。ui
五、分佈式
數據科學家能夠花費一些時間準備他們的機器來適應一個特定的框架。例如,Docker提供了30多種獨特的方法供用戶設置Caffe環境,Docker提供了一個一致的平臺來共享這些工具,減小了搜索操做系統特定安裝程序和庫所花的時間。
六、可訪問性
Docker生態系統—Docker compose和Docker machine —可讓任何人輕鬆的訪問它。這意味着一些不熟悉代碼的公司成員仍然能夠運行它。甚至你能夠向銷售團隊成員,或更高的管理人員展現你正在構建的新數據科學應用程序!
咱們已經介紹了使用Docker的好處,那麼咱們就能夠開始學習Docker。首先,轉到Docker站點安裝軟件版本。爲了確保正確安裝,打開命令行並輸入docker版本。應該顯示以下:
花費一些時間,如今咱們已經安裝了Docker,接下來研究一個相對直接的,常見的例子,執行下面的代碼:
對於Docker的新手來講,直接上手來進行實戰這有點望而卻步,爲了方便你們理解,將這個例子分解一下:
docker run:這個命令的做用是查找鏡像(在本例中是jupyter notebook),加載一個容器,而後在該容器中運行一個命令。
-p 8000:8000:' p '關鍵字表明端口,所以命令的這一部分是打開主機和容器之間的端口,格式爲-p<主機端口>:<容器端口>。
jupyter/notebook:要加載的鏡像,對於Jupyter notebook,你能夠在Docker官方庫中瀏覽上千種最流行的軟件工具。運行該命令並導航到http://localhost:8000/以後,會看到如下內容:
這個過程應該很簡單,當你想要下載Python運行庫和Jupyter包時,經過Docker運行它是很是有效的。如今已經開始運行了,接下來開始在主機和容器之間共享Jupyter notebook。首先,咱們須要在主機上建立一個目錄來存儲notebook,咱們將其命名爲/jupyter-notebook。在運行Docker命令時共享目錄操做和端口的工做方式類似,咱們須要添加如下內容:
所以,如今對<主機端口>:<容器端口>進行映射:(例如主機上的~/jupyter-notebook,容器上的/home/joyvan)。來自Jupyter Docker文檔的容器目錄將做爲這類映像的指定工做目錄。結合這一點和咱們以前運行的內容,完整的命令應該是這樣的:
如今簡單地加載本地主機服務器,建立一個新的notebook,並將它重命名爲「Example Notebook」。最後,檢查本地主機~/jupyter-notebook目錄,能夠看到:Example Notebook.ipynb。
Dockerfile是一個文本文檔,其中包含能夠用來自動建立Docker映像的命令,這是保存Docker命令並經過Docker build /path/to/dockerfile命令連續執行它們的有效方法。上面提到的Jupyter notebook示例的Dockerfile以下所示:
如今對每一個部分進行講解:
FROM Ubuntu : latest
這指的是對於新映像,Docker應該以什麼爲基礎,在本例中是ubuntu。Latest:簡單調用最新的版本。若是要測試舊版本,須要輸入版本號。
RUN apt-get update && apt-get install -y python3 python3-pip
這一行確保系統是最新的,而後安裝python3和pip3。
RUN pip3 install jupyter
而後安裝Jupyter。
WORKDIR /home/jupyter
COPY /src/jupyter ./
在Docker映像容器上設置工做目錄,而後從本地主機複製須要的文件。
EXPOSE 8000
與-p之前的工做方式相似,將端口8000暴露給了主機。
ENTRYPOINT ["jupyter", "notebook", "--ip=*"]
開始 Jupyter notebook。
Dockerfile很是有用,由於它容許你團隊內的其餘團隊成員輕鬆地運行Docker容器。
就像你看到的那樣,咱們成功地爲Docker提供了一個工做用例,而且運行得很是快。咱們僅僅觸及了你所能作的表面,可是Docker真的算是一個神奇的庫,它存在無限的可能性。成爲Docker的專家不只能夠幫助你進行本地開發,並且能夠在與數據科學家團隊合做時節省大量的時間、金錢和精力。
本文做者:【方向】
本文爲雲棲社區原創內容,未經容許不得轉載。