前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
Docker的功能定位
?
Docker為基于Linux容器的開源項目,其利用Linux內核中的各項功能——例如命名空間與控制組——以在操作系統之上創建容器
?
?
- 易用性: Docker能夠為潛在受眾帶來出色的易用性——開發者、系統管理員以及架構師等等——從而幫助其充分利用容器技術優勢以快速構建并測試可移植應用程序。每個人都可以在自己的筆記本上打包應用程序,并將其直接運行在任何公有云、私有云甚至是裸機之上。其座右銘是:一次構建,隨處運行。
- 速度: Docker容器具備輕量化與高速特性。由于容器本身屬于運行在內核之上的沙箱環境,因為其對資源的需求量極低。大家可以在數秒鐘內完成容器的創建與運行,而虛擬機則由于需要引導完整的虛擬操作系統而耗費更多時間。
- Docker Hub: Docker用戶還能夠享受由Docker Hub帶來的豐富生態系統支持,我們可以將其理解成“Docker鏡像的應用商店”。Docker Hub提供成千上萬由社區開發的公共鏡像,且可立即加以使用。我們可以輕松根據需要搜索到合適的鏡像,將其提取并稍加修改即加以使用。
- 模塊性與可擴展性: Docker允許我們輕松將應用程序的功能拆分成多個獨立容器。舉例來說,我們可以將自己的Postgres數據庫運行在一套容器當中,并將Redis服務器運行在另一容器內,而Node.js也擁有自己的容器系統。在Docker的幫助上,大家能夠輕松將這些容器對接起來以創建完整的應用程序,這就讓未來的規模伸縮或者組件更新得以通過相互獨立的方式完成。
?
?
?
容
?
容器與虛擬機究竟是什么?
容器與虛擬機擁有著類似的使命:對應用程序及其關聯性進行隔離,從而構建起一套能夠隨處運行的自容納單元。
此外,容器與虛擬機還擺脫了對物理硬件的需求,允許我們更為高效地使用計算資源,從而提升能源效率與成本效益。
容器與虛擬機之間的核心差異在于其架構方法。
?
?
Docker容器將一款應用程序的軟件打包在單一環境當中,同時包含全部運行必需的要素。其中包括操作系統、應用程序代碼、運行時、系統工具、系統庫等等。Docker容器由Docker鏡像構建而成。由于鏡像存在只讀屬性,因此Docker會在鏡像在只讀文件系統之上添加一套讀取-寫入文件系統以實現容器創建。
另外,在創建容器時,Docker還會創建一套網絡接口以幫助容器同本地主機通信、對接可用IP地址并執行用戶在定義鏡像時所執行的進程以運行應用程序。
在成功創建了一套容器之后,我們隨后可以將其運行在任何環境當中,而不必再做任何變更。
?