docker鏡像和操作系統沒關系,docker最大的價值就是提出了鏡像打包技術。首先你的明白什么是docker,什么是鏡像,什么是容器,然后你就能明白鏡像和操作系統之間的關系。docker是一個引擎,是基於內核的一種技術。比如Linux內核,那么它就關心是不是Linux內核,它不關心你是Ubuntu還是CentOS。所以docker也實現了和操作系統的解耦。鏡像呢是把服務的運行環境打成了一個包,比如tomcat,鏡像里面是把除操作系統的內核以外,然后再加上tomcat的二進制包。然后通過docker引擎構建出來一個tomcat的鏡像。容器呢,比如我們想創建一個tomcat服務,之前的方式是在服務器中通過tar或者是rpm安裝一個tomcat,然后在start tomcat;如果我們要安裝多台的話我們需要多次手動去操作部署。現在有了tomcat鏡像以后,我們可以直接利用鏡像創建出多個tomcat來(關系是一個tomcat鏡像可以創建出多個tomcat容器-即tomcat服務),把容器看成是tomcat的進程就行。
簡單來說,一個程序運行,需要操作系統的支持,並且需要訪問自己的私有的數據和軟件。
docker是容器,它將所有的訪問文件和操作系統的api重新定向了,讓應用內感覺自己在一>個獨立的操作系統上運行,而docker攔截了api調用,並且把那些全局的對操作系統的訪問>進行了包裝,使得程序不會真的訪問它們。
因為docker程序訪問的是容器包裝的api,理論上說,只要在另一個操作系統上實現了這些>容器的api,就可以把程序移植上去,因為程序不直接和操作系統打交道,感覺不到不同系>統的不同。