自己買了個服務器,前不久搭建好的一個網站,想要再搞一個站點,無奈只能修改端口后,再部署另外一個站點。繁瑣的配置運行環境,遷移網站,是否讓你感覺到很繁瑣?服務器不想用了,想搬遷到另外一台服務器去部署,先是拷貝原有數據,在新的服務器上又開始搭建環境進行部署,這些費時間的事情現在只需要幾分鍾就能完成,那就是docker技術。
docker通俗按照自己的理解來說,就是類似VM虛擬機一樣的虛擬技術。但是它比虛擬機更加強大,體積小,運行速度快,啟動和關閉只需要幾秒。相對於普通虛擬機來說,啟動時間在分鍾級別,占用內存大。所以這就是docker出現之后的優勢。docker容器可以打包為鏡像文件(類似VM虛擬機的那些快照文件),遷移的時候我們只需要在新服務器上安裝docker,就能把之前打包好的鏡像文件導入到docker里面,運行容器,就能實現訪問,不需要重新配置環境。下面一張圖展示普通虛擬機和docker的區別。
VM虛擬機:
docker架構圖:
我們進行對比一下,docker其實就是和虛擬機的目的差不多,都是虛擬化技術。但是docker比虛擬機更加輕量級,更快,更加易於移植。
鏡像: 創建虛擬機和docker 都必不可少的東西。 用過虛擬機的朋友都知道,創建一個虛擬機就先得下載操作系統的ISO鏡像文件,然后通過鏡像文件安裝操作系統,和實體機類似,然后能在虛擬機中去安裝各種軟件。
容器: 通俗拿VM虛擬機和docker來舉例,一個容器就類似於一個虛擬機,只不過在docker技術的術語上稱為容器。這個容器裝的就是我們部署的應用在運行,和虛擬機一樣可以開機,關機,重啟。docker稱為容器的運行,關閉,重啟。而且這個容器可以打包為鏡像文件,類似虛擬機快照的文件,放在其它虛擬機上又可以保持原樣能運行,docker也是如此,把容器打包為鏡像文件,然后在新的服務器安裝好的docker環境下導入進去,保持原來的狀態能夠運行。
透過現象看本質:
1、docker容器實際上就是運行的一個進程,只不過由於docker幫助我們包裝了這個進程,給這個進程加以一個可運行的微linux環境而已,讓我們感覺看起來"像"虛擬機而已。所以也就不奇怪,為什么容器的啟動是秒級的,啟動一個虛擬機是分鍾級別的。
2. 舉個簡單例子。一個房子比較大,假如租戶一起住,大家一起住難免有束縛感,也不太方便。那么房東把房子改造一下,房子用可拆裝的牆板隔離開來,分為許多的小房間,每個人住在自己的小房間。小房間麻雀雖小,五張俱全,你可以自己布置自己的房間。每個租客在自己的"小房間"里面可以做自己的事情,從而也不會打擾到其他人。但是他們都是共享這個房子的水費,電費,網費等公共資源(每個docker容器(也就是進程)依賴的是宿主機的資源)。 聰明的你會想到, 可拆裝的牆板隔音效果或安全性不夠(docker容器之間的隔離性比真實虛擬機要稍微弱), 會不會有壞人打個洞偷窺? 會不會有人監聽我在房間的一舉一動? 可拆裝的牆板肯定是不比水泥牆(虛擬機隔離性)牢固.雖說隔離性沒有虛擬機那么強,但是目前為止docker還沒暴露出關於這方面的問題,廣泛的社區以及大廠Google等公司都在使用,所以我們還是可以放心大膽使用的。 假如有一天房東要把房子賣了,只要把可拆裝的牆板移除,打掃一下,回到原樣,不破壞房子原樣,就可以出售房子了(在容器中安裝的軟件,程序等都不會污染到宿主機的環境,容器被刪除也就被刪除了)。
————————————————
版權聲明:本文為CSDN博主「愛在南信」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xyz_dream/article/details/53081687