what is docker?
百度 告訴我們docker是一個容器
作為java碼頭搬磚的 我想到了 spring也是叫做容器
那么容器是一個什么樣的概念? 不由想到了水缸---容器 容器裝載水的 與水毫無關系
spring容器 IOC AOP 都曉得
IOC 把對象創建交給spring管理 然后加載到jvm中運行java 程序
AOP 面向切面編程.其實就是提供了一個切面模式.能夠很好地控制類的加載順序.或者類的執行順序
但是本質上spring容器就是裝載java程序的
那么docker?
裝載各種程序的.暫時可以理解為一個系統.系統也是一個容器.裝載我們運行的程序
window裝載 exe. linux裝載rpm. android 裝載一類apk的程序 ios裝載一類ipa的程序
那么官網是怎么吹皮的呢?
Docker是推動集裝箱運動的公司,也是唯一一家能夠解決混合云中的每個應用的集裝箱平臺提供商。當今的企業面臨數字化轉型的壓力,但受到現有應用程序和基礎架構的制約,同時合理化日益多樣化的云,數據中心和應用程序體系結構。Docker實現了應用程序和基礎架構與開發人員和IT運營商之間的真正獨立性,從而發揮其潛力,并創建更好的協作和創新模式。
docker給我們提供了什么樣的先進功能? 也是我們要用它的原因
1.敏捷
通過13X加速軟件開發和部署,并立即響應客戶的需求。
2.可移植性
一勞永逸地消除“在我的機器上工作”。在本地和云環境中獲得獨立性。
3.安全
通過內置的安全功能和配置,在整個生命周期中提供更安全的應用程序。
4.節約成本
優化基礎架構資源的使用并簡化操作,以節省總成本的50%。
在使用上:
1.簡單
Docker為應用創建和編排提供了強大的工具
2.透明度
采用開源技術和模塊化設計構建,可輕松集成到現有環境中。
3.獨立
Docker在開發人員和IT部門之間以及應用程序和基礎架構之間創建了一個關注點,以解鎖創新
在行業上
1.現代化傳統應用[MTA]
Docker的第一步是現有的應用程序組合。將現有應用程序打包到容器中可以立即提高安全性,降低成本并獲得云的便攜性。這種轉換將現代屬性應用于遺留應用程序 - 所有這些都不需要更改一行代碼。
2.混合云
云遷移,多云或混合云基礎架構需要應用程序的無縫移植。Docker將應用程序及其依賴關系打包到一個獨立的容器中,使它們可以移植到任何基礎架構中 一勞永逸地消除“在我的機器上工作”的問題。Docker認證的基礎架構確保集裝箱化的應用程序一直工作。
3.持續集成和部署[DEVOPS]
集成現代方法并通過集成Docker和DevOps來自動化開發流程。通過消除應用程序沖突并提高開發人員的生產力,容器的獨立性使其有助于快速變化的環境。Docker實現了關注的真正分離,加速了DevOps流程的采用。
4.微服務
Docker容器在設計上是輕量級的,是實現微服務應用程序開發的理想選擇。加速作為單個應用程序組成的數十個或數百個容器的開發,部署和回滾。無論是構建新的微服務還是將小塊服務轉換為更小的服務,簡單易用的工具都可以輕松組合,部署和維護復雜的應用程序。
docker安裝:https://docs.docker.com/engine/installation/
docker與虛擬機區別
可看出虛擬機擁有較強的隔離技術。虛擬機承載的鏡像都是互相獨立的。
而且虛擬機中執行的進程是被虛擬機管理的,并不與主機進程等價。
docker容器技術中,最主要一點就是容器進程與主機進程等價。省去了虛擬機進程管理的消耗。
但是這樣也帶來了問題。容器隔離度安全問題。
另外docker中可以兩個應用共用一個庫。而虛擬機因為隔離性太強,只能各用個的。