Docker系列(一)到底什麼是 Docker?
一個web應用從開發到上線,需要對運行環境,操作系統、再到一些基本的配置,都需要有一個統一的管理。這是開發和運維之間經常會出現的問題,就像有的時候在本地上測試的沒有問題,但是一放在服務器上就會出現各種各樣的問題。而且同一個應用在不同的地方部署,需要部署很多次,非常的麻煩,這對運維人員是一項非常大的挑戰。
基於這些問題,我們經常會想可不可以將環境和其他配置一起打個包,之後再統一部署呢。Docker就這樣誕生了,Docker爲我們提供了一個統一的解決方案。
一、Docker是什麼?
一次封裝,處處運行。如果說之前開發和運維之間,是開發向運維交代碼,之後就是運維去進行部署和環境的搭配,現在有了Docker就是開發向運維交一個鏡像,其中包含了運行所需要的的環境。
二、Docker三要素
** (1)鏡像(Image)**
鏡像可以用來創建容器,一個鏡像可以創建多個容器。可以類比到Java面向對象的思想中,Docker類比於Java、鏡像類比於Java類、容器就可以類比到每一個的實例。
Java | Docker |
---|---|
鏡像 | Java類 |
容器 | 實例 |
(2)容器(Container)
一句話概括容器:容器就是將軟件打包成標準化單元,以用於開發、交付和部署。
容器鏡像是輕量的、可執行的獨立軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
容器化軟件適用於基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同基礎設施上運行不同軟件時的衝突。
Docker的官方圖標是一個鯨魚的背上有一些集裝箱,如果把Docker當做鯨魚的話,那麼容器就可以看做是鯨魚背上一個個的集裝箱,裏面封裝着各種各樣的東西,可以是一個Web應用、甚至可以是一個系統環境。
(3)倉庫(Repository)
倉庫就是在雲上存放鏡像的地方,當我們有需要的時候就可以把鏡像放在我們自己的鯨魚背上。
最大的倉庫就是Docker Hub(https://hub.docker.com/)。
國內的比較著名的倉庫有阿里雲和網易雲的,之後將介紹怎麼配置Docker的鏡像。