最近Python程序員提到最多的一個框架就是docker了,對于一些新手來說還不知道他的存在,這里小千就用幾期文章給大家介紹一下這個docker和使用教程,喜歡的話記得關(guān)注一下。
1.什么是Docker?
Docker時Docker.Lnc公司開源的一個基于LXC技術(shù)之上搭建的Container容器引擎,源代碼托管在Github上,基于Go語言并遵從Apache2.0協(xié)議開源。Docker將應(yīng)用程序與該程序的依賴,打包在一個文件里面。運行這個文件,就會生成一個虛擬容器。程序在這個虛擬容器里運行,就好像在真實的物理機上運行一樣。有了Docker,就不用擔心環(huán)境問題。
總體來說,Docker的接口相當簡單,用戶可以方便地創(chuàng)建和使用容器,把自己的應(yīng)用放入容器。容器還可以進行版本管理、復制、分享、修改,就像管理普通的代碼一樣。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
2.Docker的設(shè)計理念和概念
docker設(shè)想是交付運行環(huán)境如同海運,OS如同一個貨輪,每一個在OS基礎(chǔ)上的軟件都如同一個集裝箱,用戶可以通過標準化手段自由組裝運行環(huán)境,同時集裝箱的內(nèi)容可以由用戶自定義,也可以由專業(yè)人員制造。這樣,交付一個軟件,就是一系列標準化組件的集合的交付,如同樂高積木,用戶只需要選擇合適的積木組合,并且在最頂端署上自己的名字(最后一個標準化組件是用戶的app)。這也就是基于docker的PaaS產(chǎn)品的原型。
所以Docker的主要目標是“Build,Ship and Run Any App,Anywhere”,也就是通過對應(yīng)用組件的封裝、分發(fā)、部署、運行等生命周期的管理,使用戶的APP(可以是一個WEB應(yīng)用或數(shù)據(jù)庫應(yīng)用等等)及其運行環(huán)境能夠做到“一次封裝,到處運行”。
Docker是開發(fā)人員和系統(tǒng)管理員使用容器開發(fā)、部署和運行應(yīng)用程序的平臺。使用Linux容器來部署應(yīng)用程序稱為集裝箱化。使用docker輕松部署應(yīng)用程序。目前,Docker 從 17.03 版本之后分為 CE(Community Edition: 社區(qū)版) 和 EE(Enterprise Edition: 企業(yè)版),我們用社區(qū)版就可以了。
3.Docker的組成部分
一個完整的Docker有以下幾個部分組成:DockerClient客戶端、Docker Daemon守護進程、Docker Image鏡像、DockerContainer容器。
通過運行images啟動容器,一個images是一個可執(zhí)行的包,其中包括運行應(yīng)用程序所需要的所有內(nèi)容-代碼,運行時,庫、環(huán)境變量和配置文件。容器時images運行時示例-當被執(zhí)行時(即,images狀態(tài),或者用戶進程)在內(nèi)存中,可以使用命令查看正在運行容器的列表docker ps,就像在Linux中一樣。
4.容器虛擬化和用途
Docker的主要用途,目前有三大類:
提供了一次性的環(huán)境:比如,本地測試他人的軟件、持續(xù)集成的時候提供單元測試和構(gòu)建的環(huán)境。
提供彈性的云服務(wù):因為Docker容器可以隨開隨關(guān),很適合動態(tài)擴容和所容。
組建微服務(wù)架構(gòu):通過多個容器,一臺機器可以跑多個服務(wù),因此在本機就可以模擬出微服務(wù)架構(gòu)。
5. Docker的使用場景
使用Docker容器開發(fā)、測試、部署服務(wù):因為Docker本身非常輕量化,所以本地開發(fā)人員可以構(gòu)建、運行并分享Docker容器。容器可以在開發(fā)環(huán)境中創(chuàng)建,然后再提交到測試,最終進入生產(chǎn)環(huán)境。
創(chuàng)建隔離的運行環(huán)境:在很多企業(yè)應(yīng)用中,同一服務(wù)的不同版本可能服務(wù)于不同的用戶,那么使用Docker非常容易創(chuàng)建不同的生成環(huán)境來運行不同的服務(wù)。
搭建測試環(huán)境:由于Docker的輕量化,所以開發(fā)者很容易利用Docker在本地搭建測試環(huán)境,用來測試程序在不用系統(tǒng)下的兼容性;甚至搭建集群的部署測試。
構(gòu)建多用戶的平臺即服務(wù)(PaaS)基礎(chǔ)設(shè)施。
提供軟件即服務(wù)(SaaS)應(yīng)用程序。
高性能、超大規(guī)模的宿主機部署。
以上就是關(guān)于Docker的一些基礎(chǔ)介紹了,下一期我們給大家介紹Docker的安裝和常用概念,千萬不要錯過了。
最后如果同學對Python培訓課程感興趣的話,不妨來千鋒Python培訓班了解一下我們的Python培訓課程,更有免費的Python學習資料可以領(lǐng)取,趕緊來咨詢一下吧!