docker中的容器和镜像
最近學習了docker,感覺容器和鏡像學的有點模糊。
特別是鏡像和容器,感覺完全分不開,所以在此學習,然后總結了一下,便于后面的學習。
***************
補充:經過我的一段時間使用,現在再來說一下Docker中容器和鏡像的關系
- 鏡像你可以把它看成Java中的類,而容器可以看做是類的實例化對象。
- 一個類可以有多個對象,同理,一個鏡像可以有多個容器。
***************
?
docker的整個生命周期有三部分組成:鏡像(image)+容器(container)+倉庫(repository)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?docker 容器=鏡像+可讀層
容器是由鏡像實例化而來。
簡單來說,鏡像是文件,容器是進程。
容器是基于鏡像創建的,即容器中的進程依賴于鏡像中的文件。
?
docker 的鏡像概念類似虛擬機的鏡像。是一個只讀的模板,一個獨立的文件系統,包括運行容器所需的數據,可以用來創建新的容器。
docker利用容器來運行應用:docker容器是由docker鏡像創建的運行實例。
docker容器類似虛擬機,可以執行包含啟動,停止,刪除等。每個容器間是相互隔離的。容器中會運行特定的運用,包含特定應用的代碼及所需的依賴文件。可以把容器看作一個簡易版的linux環境(包含root用戶權限,進程空間,用戶空間和網絡空間等)和運行在其中的應用程序。
?
在Docker的生命周期中,最核心的兩個部分,一個是鏡像 Images,一個是容器 Containers。
鏡像運行起來就是容器。
容器服務運行的過程中,基于原始鏡像做了改變,比如安裝了程序,添加了文件,也可以提交回去 (commit)成為鏡像。
?
例如:一個鏡像可以包含一個完整的ubuntu操作系統環境,里面僅安裝了mysql或用戶需要的其他應用程序。
docker鏡像實際上是由一層一層的系統文件組成,這種層級的文件系統被稱為UnionFS( Union file system ?統一文件系統),鏡像可以基于dockerfile構建,dockerfile是一個描述文件,里面包含了若干條密令,每條命令都會對基礎文件系統創建新的層次結構。
docker提供了一個很簡單的機制來創建鏡像或更新現有的鏡像。用戶甚至可以從其他人那里下載一個已經做好的鏡像直接使用。(鏡像是只讀的,可以理解為靜態文件)
????????相對于鏡像來說容器是動態的,容器在啟動的時候創建了一層可寫層次作為最上層。
(???docker create <image -id > :為指定的鏡像添加一個可讀寫層,構成一個新的容器;)
?docker倉庫:如果使用了git和github就很容易理解docker的倉庫概念。docker倉庫概念和git類似。
docker倉庫是用來包含鏡像的位置,docker提供了一個注冊服務器(register)來保存多個倉庫,每個倉庫又可以包含多個具備不同tag的鏡像,
docker運作中使用的默認倉庫是docker hub公共倉庫。
倉庫支持的操作類似git,當用戶創建了自己的鏡像之后就可以使用push命令將它上傳到共有或者私有的倉庫。這樣下次再另外一臺機器上使用這個鏡像的時候只需要從倉庫里面pull下來就可以了。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的docker中的容器和镜像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网易云会员音乐NCM格式在线转为MP3格
- 下一篇: phpstudy 提示安装VC9 VC1