什么是鏡像?
創新互聯建站服務項目包括修武網站建設、修武網站制作、修武網頁制作以及修武網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,修武網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到修武省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
鏡像可以看成是由多個鏡像層疊加起來的一個文件系統(通過UnionFS與AUFS文件聯合系統實現),鏡像層也可以簡單理解為一個基本的鏡像,而每個鏡像層之間通過指針的形式進行疊加。什么是容器?
容器(container)的定義和鏡像(image)幾乎一模一樣,也是一堆層的統一視角,唯一區別在于容器的最上面那一層是可讀可寫的。要點:容器 = 鏡像 + 讀寫層,并且容器的定義并沒有提及是否要運行容器。
今天拋開原理,拋開底層。通俗的講解docker中容器與鏡像的區別。
對于初學者來說,剛剛接觸docker會有點迷,特別是鏡像與容器。其實我們可以理解鏡像與容器為一對多的關系。
下圖錯誤的示范,為什么是錯誤的呢?因為可以通過一個鏡像確實可以啟動三個容器,但是這個三個容器的名字不能一樣
正確的示例(有人說這和上圖有什么區別,上圖中是不是名字一樣了 容器=容器=容器 ,這里的名字是 容器a != 容器b != 容器c )
所以我們能通過一個鏡像,運行出三個容器,鏡像是別人打包好在鏡像倉庫的,我們去下載就好了。但是我們下載鏡像的時候要帶上版本號。就像我們下載一個jdk,官網默認是最新版,如果我們要下載舊版,就要進到對應的版本里面。
一個鏡像怎么運行為容器呢?比如msql,我們下載一個mysql鏡像。docker pull mysql
運行鏡像,生成mysql_zhangsan數據庫(專門給張三用的數據庫)[root@localhost ~]# docker run ‐p 3306:3306 ‐‐name mysql_zhangsan ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434
-p 3306:3306 : 端口映射
--name mysql_zhangsan : 給這個容器命名為mysql_zhangsan(這個名字是唯一的,不能重復)
-e MYSQL_ROOT_PASSWORD=123456 : 這個數據庫登陸的賬號為ROOT 密碼為123456
-d 是基于我們剛剛拉下拉的鏡像mysql進行創建的。
運行鏡像,生成mysql_lisi數據庫(專門給李四用的數據庫)[root@localhost ~]# docker run ‐p 3307:3307 ‐‐name mysql_lisi ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql ms10e4bcfdsf0f61cbad43898de71d366117d120dfs9db651844c0e73863b9968
-p 3307:3307 : 端口映射(不能用3306了,因為3306被張三的數據庫占用了)
--name mysql_lisi : 給這個容器命名為mysql_lisi(這個名字是唯一的,不能和上面的mysql_zhangsan重復)
-e MYSQL_ROOT_PASSWORD=123456 : 這個數據庫登陸的賬號也為ROOT 密碼也為123456
-d 是基于我們剛剛拉下拉的鏡像mysql進行創建的。
到這里,我們成功通過一個鏡像,創建了兩個不同的容器。這樣,我們的電腦上就能運行兩個mysql了。如果我們要再開一個mysql容器,只要端口不同,名稱不同,最后還是基于我們拉的mysql鏡像就可以進行創建了。
以上就是聊聊docker中容器與鏡像的區別的詳細內容,更多關于docker容器與鏡像的區別的資料請關注腳本之家其它相關文章!
文章名稱:聊聊docker中容器與鏡像的區別
轉載注明:http://m.2m8n56k.cn/article38/sjcpp.html
成都網站建設公司_創新互聯,為您提供商城網站、建站公司、網站設計公司、全網營銷推廣、移動網站建設、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯