Docker初步瞭解

YatHo發表於2017-06-15

Docker 是什麼

https://www.docker.com/

Docker 這個單詞英文原意是碼頭工人,搬運工的意思,這個搬運工搬運的是各種應用的容器。

官方的說法是,Docker 是提供給開發者和系統管理員一個分散式應用的開放平臺。在更多人的理解中,Docker 是一種把你的應用或者服務打包後放在容器中執行的技術。

Docker 可以說有三個關鍵點:構建,運輸,執行。這三個詞可以對應我上述提到的那句話,構建即為打包,既然是打包了,那麼就需要可以方便地搬運到各個地方,為什麼要搬運呢?歸根到底,我們是要執行打包了的應用和服務。

Docker 存在的意圖是讓你把各種語言編寫的程式應用以帶有普適性的形式打包好,你只要拿到打包好的東西,可以忽略程式本身依賴的環境或者開發的語言,直接使用 Docker 便可以執行起來。在這個實際意義之上,最重要的是 Docker 提供了容器技術來隔離多個打包的應用或者服務之間的相互影響,同時由於打包的東西具有普適性,那麼在應用規模的層面上也很便於擴充套件。

對於運維的管理人員,Docker 提供了一種可移植的標準化部署流程,對於開發者,Docker 提供了一種開發環境的管理方法。

為什麼要使用 Docker

https://www.docker.com/enterprise

上述已經提到 Docker 的很多優點,其中,我個人感覺最重要的一點是:普適性,使用 Docker 打包好的應用或者服務,你可以忽略原本程式的依賴以及開發語言。這意味著,當你需要使用多個應用程式程式碼或者服務時,你不再需要對其一一去處理依賴的環境和類庫工具等,直接是安裝一個 Docker 就可以上手,這大大提高了部署效率。同時,由於打包好的應用或服務便於
部署的緣故,那麼進行應用規模層面的擴充套件也變得簡單的多,並且 Docker 還提供了關於擴充套件的工具。

對於開發者而言,自己實現了一個應用,當然是希望使用者更快更方便地上手,或者是自己使用了別人提供的程式,亦是希望能夠更快更方便用上,而 Docker 恰恰就是帶來了這一種便利性。你只需要安裝一個 Docker,便可以輕鬆地跑 Redis,MongoDB,PHP,Java,Node.js 等各種應用,還不需要考慮它們之間相互影響,這是一件多麼美妙的事情。

所以,綜上所述,Docker 可以幫助我們做到:

    • 隔離應用的依賴和環境
    • 建立容易分發的,即啟即用的,便於複製的應用
    • 允許我們的應用例項簡單,快速地擴充套件
    • 快速部署測試環境,測試應用後銷燬

相關文章