天天看點

初識docker,弄清鏡像和容器

前言:

之前總是有人拿虛拟機和容器做比較。我之前一直了解的容器,就類似于虛拟機快照類似。拿别人的東西就直接用了。在我的虛拟機中安裝一下,環境就搞好了。其實容器是一個徹底解耦的東西。各個軟體互相獨立互不影響

什麼是鏡像

從docker本身來解釋。鏡像是一個隻讀檔案。它可以被用來建立容器。

從友善了解的角度來說,可以說鏡像就是一個類,而容器就是它派生出來的對象。一個鏡像可以建立多個容器。就像一個類可以執行個體化多個對象一樣。

那麼鏡像裡面有什麼内容呢?

鏡像類似一個一個的軟體包。這些軟體包之間互相獨立,誰也不依賴誰。隻有一個基礎環境,可以是centos 也可以是Ubuntu。總之就是,一個軟體裝在一個系統裡

什麼是容器

容器就是在鏡像的基礎上可以讀寫。可以修改裡面的内容。 當我們從網際網路中pull下來鏡像,這個運作這個鏡像,就得到了一個容器。這個容器中除了有我們的軟體之外,什麼也沒有。我們需要配置這個軟體。而配置好了這個軟體後,在容器中雖然生效了。但下一次運作鏡像的時候,這些配置都消失了。是以當我們需要儲存這些修改時,就需要送出修改生成新的鏡像。

附上一張,我了解的容器搭建的php開發環境

容器開發環境

高深的原理我還沒領悟到,我隻是從實踐出發,搭建了一個nginx 和php 讓我有些小感悟。如果有不對的地方,歡迎大神指正。謝謝