Docker入門篇
簡單一句話: Docker 是一個便攜的應用容器。
一、Docker的作用
網上鋪天蓋地的是這么說的:
(1) Docker 容器的啟動可以在秒級實現,這相比傳統的虛擬機方式要快得多。
(2) Docker 對系統資源的利用率很高,一台主機上可以同時運行數千個 Docker 容器。
(3) 更快速的交付和部署、更輕松的遷移和擴展.
道理呢是這個道理 但如果一點都沒接觸的人的不一定能夠理解進去 。
通俗解釋一:
在Docker出世之前,作為一個java開發的我 在服務器上搭建java環境是如何做的呢?
首先在雲服務器上安裝jdk tomcat mysql數據庫...... , 如果有多個項目,我們可以運行多個tomcat 每個tomcat里面一個java應用。
這樣也確實沒啥毛病 但有它的弊端:
(1)如果公司新買了一個雲服務器 同時需要把項目部署到該服務器上。那你是不是需要又要在該服務器上安裝jdk、tomcat、mysql等等.....是不是很繁瑣?
(2)如果需要在服務器上搭建net環境、java環境 那么他們依賴的軟件會不會產生沖突呢。
這張圖解釋的挺好的。
A1模式: 上面講的就相當於這里的模式A1,所有的應用共享服務器的CPU、內存等資源,這時如果一個應用出現問題,比如CPU爆滿等等,另一個應用也就玩完了。
所以要這時就要做到資源獨立, 一個應用一份資源。
A2模式: 一個服務器上裝幾個虛擬機,一個虛擬機一個應用。這時如果你要重啟虛擬機,你想想你重啟電腦要多久。而且你想遷移應用的話,你就又要裝虛擬機,
配環境等等,麻煩不?我是覺得麻煩。
A3模式: A3模式就是Docker,容器是什么概念我就不說了,這時一個服務器上運行多個容器,一個容器擁有獨立的CPU、內存等資源,完全滿足了應用隔離的需求。
而且容器重啟,1秒搞定!應用遷移的時候,這個大家應該也知道,所有裝了Docker的服務器,只需把鏡像pull或者load進去,run,一切OK,就是這么任性!
通俗解釋二:
Docker的思想來自於集裝箱,集裝箱解決了什么問題?在一艘大船上,可以把貨物規整的擺放起來。並且各種各樣的貨物被集裝箱標准化了,集裝箱和集裝箱之間不會
互相影響。只要這些貨物在集裝箱里封裝的好好的,那我就可以用一艘大船把他們都運走。docker就是類似的理念。
1、不同的應用程序可能會有不同的應用環境,比如.net環境和php環境依賴的軟件就不一樣,如果把他們依賴的軟件都安裝在一個服務器上還可能會造成一些沖突。
常規來講,我們可以在服務器上創建不同的虛擬機,但是虛擬機開銷比較高。docker可以實現虛擬機隔離應用環境的功能,並且開銷比虛擬機小。
2、你開發軟件的時候用的是Ubuntu,但是運維管理的都是centos,運這個時候就會遇到一些Ubuntu轉centos的問題,比如:有個特殊版本的數據庫,只有Ubuntu支持
centos不支持,這時候要是有docker你就可以把開發環境直接封裝轉移給運維,運維直接部署你給他的docker就可以了。而且部署速度快。
3、在服務器負載方面,如果你單獨開一個虛擬機,那么虛擬機會占用空閑內存的,docker部署的話,這些內存就會利用起來。總之docker就是集裝箱原理。
參考
如果一個人充滿快樂,正面的思想,那么好的人事物就會和他共鳴,而且被他吸引過來。同樣,一個人老帶悲傷,倒霉的事情也會跟過來。
——在自己心情低落的時候,告誡自己不要把負能量帶給別人。(大校3)