一款產品:開發到上線 兩套環境!應用環境,應用配置!java
可能在開發環境你的產品是正常的,可是到了線上環境你的產品可能就會出現各類緣由,或許是由於環境的不一樣,也多是由於配置的不一樣等等各類緣由致使服務的不可用!對於運維來講,考驗就很是大。sql
環境配置是十分的麻煩,每個機器都要部署環境(集羣Redis、ES、Hadoop等等)!費時費力。docker
如今你須要發佈一個項目(jar包 +(環境 Redis、Mysql、JDK、ES)),項目須要帶上環境安裝打包!此時Docker就能夠幫你解決。服務器
至關於Docker幫你將jar包和環境打包到一塊兒部署上線,一套流程作完!運維
舉個抽象的例子你用Java開發的apk應用(應用商店)而後呂世昊使用apk安裝便可使用,而Docker是你用java開發一個jar,而後依賴一些環境如Mysql等等,而你只須要將這個jar和環境打包成一個鏡像文件而後發佈Docker倉庫中(商店),呂世昊就能夠下載你發佈的Docker鏡像,一鍵運行就ok了。oop
Docker是基於Go語言開發的!開源項目!測試
Docker的官網:https://www.docker.comui
Docker的文檔地址:https://docs.docker.com/ (Docker的文檔是超級詳細的)阿里雲
Docker的下載:(進入Docker文檔頁面就有下載的入口)操作系統
Docker的倉庫地址:https://hub.docker.com/
傳統虛擬機,虛擬出一條硬件,運行一個完整的操做系統,而後在這個系統上安裝和運行軟件
Docker容器內的應用直接運行在宿主機的內容,Docker容器是沒有本身的內核的,也沒有虛擬咱們的硬件,因此就輕便了
每一個Docker容器間是互相隔離,每一個Docker容器內都有一個屬於本身的文件系統,互不影響。
應用更快速的交付和部署
傳統:給你一大堆幫助文檔,安裝程序。
Docker:打包鏡像發佈測試,一鍵運行。
更便捷的升級和擴縮容
使用了Docker以後,咱們部署應用就和搭積木同樣!
項目打包爲一個鏡像,擴展 服務器A!服務器B!
更簡單的系統運維
在容器化以後,咱們的開發,測試環境都是高度一致的。
更高效的計算資源利用:
Docker是內核級別的虛擬化,在一個物理機上能夠運行不少容器實例。