前言:
之前總是有人拿虛擬機和容器做比較。我之前一直理解的容器,就類似于虛擬機快照類似。拿別人的東西就直接用了。在我的虛擬機中安裝一下,環境就搞好了。其實容器是一個徹底解耦的東西。各個軟件相互獨立互不影響
什么是鏡像
從docker本身來解釋。鏡像是一個只讀文件。它可以被用來創建容器。
從方便理解的角度來說,可以說鏡像就是一個類,而容器就是它派生出來的對象。一個鏡像可以創建多個容器。就像一個類可以實例化多個對象一樣。
那么鏡像里面有什么內容呢?
鏡像類似一個一個的軟件包。這些軟件包之間相互獨立,誰也不依賴誰。只有一個基礎環境,可以是centos 也可以是Ubuntu。總之就是,一個軟件裝在一個系統里
什么是容器
容器就是在鏡像的基礎上可以讀寫。可以修改里面的內容。 當我們從互聯網中pull下來鏡像,這個運行這個鏡像,就得到了一個容器。這個容器中除了有我們的軟件之外,什么也沒有。我們需要配置這個軟件。而配置好了這個軟件后,在容器中雖然生效了。但下一次運行鏡像的時候,這些配置都消失了。所以當我們需要保存這些修改時,就需要提交修改生成新的鏡像。
附上一張,我理解的容器搭建的php開發環境
高深的原理我還沒領悟到,我只是從實踐出發,搭建了一個nginx 和php 讓我有些小感悟。如果有不對的地方,歡迎大神指正。謝謝