摘要:docker容器那麼強大?可以應用道資料科學領域?看來學習一下!docker容器是通過虛擬化開發和部署應用程式的一種越來越流行的方式,它對資料科學家有用嗎?當然,本指南就會向你介紹它的作用,並手把手教你快速入門。
docker是一種越來越流行的,使在容器中開發、部署和執行應用程式變得更容易的工具。因為它們允許開發人員將應用程式與它所需的所有部分(如庫和其他依賴項)打包,並將其作為乙個包打包,這樣就可以幫助開發人員更簡單的使用。你肯定會有這樣的疑問:這是軟體工程師常用的工具,但是資料科學家如何使用這個強大的工具呢?鑑於你有類似的疑問,我們就先來討論一下想在資料科學中使用docker的一些原因。
1、再現性
docker對於資料科學家或者是軟體工程師最大的吸引力就是它的可再現性。除了能夠共享docker映象本身之外,理論上還可以通過共享python指令碼與他人共享docker內部的資料。簡單來說,你的同時可以執行這個指令碼來檢視docker映象中的內容。
2、時間成本
docker不必安裝單獨的軟體包,因為它們都被包含在docker映象本身中,所以很節省時間。此外,docker容器的啟動時間約為50ms,比執行傳統的虛擬機器快得多。
3、靈活性
它是乙個非常靈活的工具,因為在docker庫中可以快速建立並執行任何docker映像的軟體。
4、自帶測試環境
docker在將軟體環境託管到活動伺服器之前對其進行測試是非常有用,可以將docker容器配置為與伺服器環境相同,這可以讓測試變得更簡單。
5、分布式
資料科學家可以花費一些時間準備他們的機器來適應乙個特定的框架。例如,docker提供了30多種獨特的方法供使用者設定caffe環境,docker提供了乙個一致的平台來共享這些工具,減少了搜尋作業系統特定安裝程式和庫所花的時間。
6、可訪問性
docker生態系統—docker compose和docker machine —可以讓任何人輕鬆的訪問它。這意味著一些不熟悉**的公司成員仍然可以執行它。甚至你可以向銷售團隊成員,或更高的管理人員展示你正在構建的新資料科學應用程式!
我們已經介紹了使用docker的好處,那麼我們就可以開始學習docker。首先,轉到docker站點安裝軟體版本。為了確保正確安裝,開啟命令列並輸入docker版本。應該顯示如下:
花費一些時間,現在我們已經安裝了docker,接下來研究乙個相對直接的,常見的例子,執行下面的**:
docker run:這個命令的作用是查詢映象(在本例中是jupyter notebook),載入乙個容器,然後在該容器中執行乙個命令。
-p 8000:8000:' p '關鍵字代表埠,因此命令的這一部分是開啟主機和容器之間的埠,格式為-p《主機埠》:《容器埠》。
jupyter/notebook:要載入的映象,對於jupyter notebook,你可以在docker官方庫中瀏覽上千種最流行的軟體工具。執行該命令並導航到http://localhost:8000/之後,會看到以下內容:
因此,現在對《主機埠》:《容器埠》進行對映:(例如主機上的~/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的專家不僅可以幫助你進行本地開發,而且可以在與資料科學家團隊合作時節省大量的時間、金錢和精力。
閱讀原文
關注科學家
關注科學家是如何做到工作,家庭兩不誤的 關注錢學森 王選 摘自 王選主要著述 軟體設計方法 1992年4月清華大學出版社出版 王選文集 1997年2月北京大學出版社出版 王選談資訊產業 1999年3月北京大學出版社出版 錢老 錢學森 的書 摘自 工程控制論 物理力學講義 星際航行概論 論系統工程 關...
資料科學家成搶手人才
對於乙個理應奇缺人才的領域,資料科學似乎在快速造就大批新專家。不久前,1600人出席了華盛頓大學 university of washington 機器學習教授卡洛斯 格斯特林 carlos guestrin 執掌的公司turi在舊金山主辦的一次資料科學峰會,表明資料科學引起的興趣是多麼的濃厚。格斯...
資料科學家面試如何準備?
編輯 april emma 專欄 九章演算法 資料科學家 data scientist 被 財富 雜誌譽為21世紀最 的職業。據調查顯示,僅僅在美國市場,2018年大資料和高階分析相關人才的缺口就將高達19萬。然而雖然現在很多人對這份職業躍躍欲試,但是卻對這份新興職業並不了解,更不知道應該如何準備面...