[徐培成系列實戰課程]-docker篇-第01章Docker簡介
1、介紹
容器技術和 Docker 已經成為了 IT 圈裏最火爆的話題。時至今日,還是有人會心存困惑:Docker 究竟是什麽?使用 Docker 的最大好處是什麽?為什麽它會受到這麽多用戶的熱烈追捧?有什麽相關數據作為參考?在這篇文章中,作者將悉數回答所有這些問題。
2、什麽是 IT 技術發展的必然趨勢?
其中一項一定是在容器中運行應用,而不是在虛擬機中!容器技術被認為是當今軟件行業的歷史中發展最快的技術之一。 容器技術的核心在於 Docker。Docker 是什麽?Docker 是一個能夠允許用戶輕松在容器內打包,分發和管理應用程序的平臺。換句話說,它是一個開源項目,可以輕松部署軟件容器內的應用程序。
Docker 通過使用容器來創建,部署和運行應用程序真正讓一切都變得更加容易。容器允許開發人員將應用程序打包成所需的所有部件,如庫和其他依賴項,並將其全部作為一個包。因此開發人員可以放心的將應用程序在任何其他 Linux 機器上運行,而不用管機器可能與用於編寫和測試代碼的機器有所不同的任何自定義設置。
3、關於 Docker,有哪些相關數據作為參考?
- 目前已經有 2/3的公司嘗試使用 Docker,並且采用它。 大多數采用的公司已經在初始生產使用後的30天內準備上 Docker,幾乎所有剩余的公司都在使用 60 天內最終決定采用 Docker
- 2016 年 Docker 的采用率超過了 30%
- Docker 采用者將容器的使用數量擴展了 5 倍 之多。這些公司在使用 Docker 第十個月時在生產環境中所使用的容器數量平均是第一個月時的近五倍。
- PHP,Ruby,Java 和 Node 是用於容器中的主要編程框架和語言。
4、為什麽 Docker 備受諸如 ING,Paypal,ADP,Spotify 等巨頭公司的青睞?為什麽 Docker 采用率的增長速度如此驚人?
- 高投資回報率和低成本
使用 Docker 的第一個優點就是其具有非常高的投資回報率。在選擇一種新產品的時候,投資回報率是大多數管理層面決策的最大動因。一個解決方案能越多地在降低成本的同時提高利潤,這個解決方案也就越好,這一方案對於那些需要長期產出穩定收入的大型、老牌公司來說尤為重要。
在這個層面上,Docker 能夠通過大幅度地減少基礎設施資源來幫助有效降低成本。Docker 的本質是使用更少的資源來運行相同的應用。由於 Docker 降低了基礎設施的需求,企業能夠節約從服務器成本到維護人員的一切成本。Docker 讓工程團隊變得小而精且更具效率。 - 標準化和生產率
Docker 容器確保了跨多個研發和發布周期的一致性,實現了環境的標準化。基於 Docker 的體系架構最大的優點之一就是標準化。Docker 提供了可復用的開發、構建、測試和生產環境。在整個流程中,標準化服務基礎設施讓每個團隊成員在一個相同的生產環境中工作。這樣可以使得工程師更有能力,也更有效率地分析和修復應用中的 bug。該措施減少了浪費在修正錯誤的時間,並增加了功能開發的時間。
如上所述,Docker 容器允許你提交 Docker 鏡像和版本控制的變化。舉個例子,如果你執行的組件更新破壞了整個開發環境,回滾到一個更早的版本是一件非常容易的事情。這整個過程在幾分鐘時間內就可以被測試完成。Docker 運行非常之快,讓你能夠快速復制並實現冗余。此外,啟動 Docker 鏡像就如同運行一個機器進程一樣快速。 - 持續集成效率
- Docker 讓你能夠構建一個容器鏡像,並在部署周期的每一步中都能夠使用相同的鏡像。這帶來的一個巨大好處是能夠分離獨立的步驟且並行運行它們。這使得從構建到生產所需要的時間被顯著縮短。
- 兼容性和可維護性
Docker 能夠徹底地消除“它能在我的機器上工作”的問題。這可以令整個團隊都充分享受的好處之一是它的兼容性。就 Docker 而言,兼容性意味著您的鏡像無論在哪臺服務器或是筆記本電腦上都是一樣的。對於您的開發者來說,這意味著在配置環境、調試環境特定問題和在更加方便且易於設置的代碼庫上花費的時間更少。兼容性同樣也意味著您的生產基礎設置更加可靠且更易於維護。 - 配置快速簡單
Docker 的一個關鍵優勢是它簡化問題的方式。用戶們能夠自行進行配置,將它放到代碼之中,並輕松部署。由於 Docker 能夠用於各種不同的環境之中,所以對於基礎設施的需求不再與應用的環境相關。 - 快速部署
Docker 將部署時間縮短至幾秒。 這是因為它為每個進程創建一個容器,並且不會對操作系統造成影響。 你可以創建和銷毀數據,而不用擔心難以承受的高成本。 - 持續部署和測試
Docker 確保了從開發到生產環境的一致性。 Docker 容器的配置是為了從內部維護配置和依賴項,你可以使用從開發到生產流程中的同一容器來確保沒有差異或手動幹預。
如果需要在產品發布周期中進行升級,你可以輕松地對 Docker 容器進行必要的更改,測試,也可以對現有容器實施相同的更改。這種靈活性是使用 Docker 的另一個關鍵優勢。Docker 允許用戶在跨多個服務器部署的情況下,進行構建,測試和發布鏡像。 即使有新的安全補丁可用,進程仍然保持不變。 你可以應用補丁,測試它,並將其用於生產環境。 - 多雲平臺
Docker 的另一個顯著優點是可移植性。在過去幾年中,所有主要的雲計算供應商,包括 Amazon Web Services(AWS)和 Google Compute Platform(GCP),都已經全面認可了 Docker 的可用性並附加了個人支持。 Docker 容器可以在 Amazon EC2 實例中運行,同時也可以在 Google Compute Engine 實例,Rackspace 服務器 或 VirtualBox 中運行,前提是主機操作系統支持 Docker。 如果是這種情況,運行在 Amazon EC2 實例上的容器可以輕松地在環境之間移植,如 VirtualBox,能夠實現類似的一致性和功能。 此外,Docker 與其他供應商(如 Microsoft Azure 和 OpenStack)配合良好,可與各種配置管理器(如 Chef,Puppet 和 Ansible 等)一起使用。 - 隔離性
Docker 能夠確保應用和資源被充分隔離。Docker 確保每個容器都有自己的與其他容器隔離的資源。你可以讓獨立應用的不同容器運行在不同的堆棧上。因為每個應用都在自己的容器上運行,所以 Docker 可以清除這些應用。如果不再需要一個應用的時候,你可以簡單地刪除它的容器。它不會在你的主機操作系統上留下任何臨時或配置文件。
除此之外,Docker 還確保了每個應用僅使用已分配給它們的資源。 一個特定應用不會使用所有可用的資源,這樣就不會導致性能的下降或其他應用完全不能運行的情況。 - 安全性
使用 Docker 的最後一個競爭優勢是安全。從安全的角度來看,Docker 可以確保在容器上運行的應用被完全隔離,從而使你能夠完全控制流量和對它的管理。Docker 容器不能查看其他容器內部運行的進程。從架構的角度來看,每個容器都有屬於自己的從進程到網絡堆棧的資源池。
5、誰在使用docker-目前在使用docker的企業客戶有哪些?
-
docker目前最多的用途
Red Hat 已經開始大力發展docker技術,並提供強有力的支持。 openshit平臺就是最好的驗證。簡單來講docker,為一個項目的開發和運營,提供了更方便的持續集成,更新,回滾,這也就意味著所有用到上述功能的地方,docker都可以大展拳腳.
-
docker在敏捷開中的應用
docker中包含了很多敏捷開發工具,例如 Puppet, Chef, Vagrant, 和 Ansible,這些都可以用於建立一個可定制的開發環境。docker 讓本地的開發環境可以和線上開發環境一致,在不同的機器,不同的os,不同的硬件上使用相同的配置文件和執行環境。 - Docker的持續集成
eBay 已經開始使用docker 來持續集成他們的分布式環境。雖然他們使用的可能是不同的硬件不同的os,但是這不妨礙,docker 讓這些節點變成一致可操作的節點。 - 微軟也在自家的azure平臺嘗試使用docker,讓linux 能夠更輕松的運行的在Windows平臺上。
[徐培成系列實戰課程]-docker篇-第01章Docker簡介