欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker 鏡像和容器的區(qū)別詳解

 更新時(shí)間:2016年10月20日 14:28:52   投稿:lqh  
這篇文章主要介紹了Docker 鏡像和容器的區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下

 最近學(xué)習(xí)Docker,被Docker 的鏡像和容器搞的暈頭轉(zhuǎn)向,索性上網(wǎng)查找相關(guān)資料并整理下徹底的理解這塊內(nèi)容,有需要的小伙伴可以看下,少走點(diǎn)彎路。

Docker的鏡像和容器的區(qū)別        

一、Docker鏡像

要理解Docker鏡像和Docker容器之間的區(qū)別,確實(shí)不容易。

假設(shè)Linux內(nèi)核是第0層,那么無(wú)論怎么運(yùn)行Docker,它都是運(yùn)行于內(nèi)核層之上的。這個(gè)Docker鏡像,是一個(gè)只讀的鏡像,位于第1層,它不能被修改或不能保存狀態(tài)。

一個(gè)Docker鏡像可以構(gòu)建于另一個(gè)Docker鏡像之上,這種層疊關(guān)系可以是多層的。第1層的鏡像層我們稱(chēng)之為基礎(chǔ)鏡像(Base Image),其他層的鏡像(除了最頂層)我們稱(chēng)之為父層鏡像(Parent Image)。這些鏡像繼承了他們的父層鏡像的所有屬性和設(shè)置,并在Dockerfile中添加了自己的配置。

Docker鏡像通過(guò)鏡像ID進(jìn)行識(shí)別。鏡像ID是一個(gè)64字符的十六進(jìn)制的字符串。但是當(dāng)我們運(yùn)行鏡像時(shí),通常我們不會(huì)使用鏡像ID來(lái)引用鏡像,而是使用鏡像名來(lái)引用。要列出本地所有有效的鏡像,可以使用命令

# docker images

鏡像可以發(fā)布為不同的版本,這種機(jī)制我們稱(chēng)之為標(biāo)簽(Tag)。

如上圖所示,neo4j鏡像有兩個(gè)版本:lastest版本和2.1.5版本。

可以使用pull命令加上指定的標(biāo)簽:

# docker pull ubuntu:14.04
# docker pull ubuntu:12.04

二、Docker容器

Docker容器可以使用命令創(chuàng)建:

# docker run imagename

它會(huì)在所有的鏡像層之上增加一個(gè)可寫(xiě)層。這個(gè)可寫(xiě)層有運(yùn)行在CPU上的進(jìn)程,而且有兩個(gè)不同的狀態(tài):運(yùn)行態(tài)(Running)和退出態(tài)(Exited)。這就是Docker容器。當(dāng)我們使用docker run啟動(dòng)容器,Docker容器就進(jìn)入運(yùn)行態(tài),當(dāng)我們停止Docker容器時(shí),它就進(jìn)入退出態(tài)。

當(dāng)我們有一個(gè)正在運(yùn)行的Docker容器時(shí),從運(yùn)行態(tài)到停止態(tài),我們對(duì)它所做的一切變更都會(huì)永久地寫(xiě)到容器的文件系統(tǒng)中。要切記,對(duì)容器的變更是寫(xiě)入到容器的文件系統(tǒng)的,而不是寫(xiě)入到Docker鏡像中的。

我們可以用同一個(gè)鏡像啟動(dòng)多個(gè)Docker容器,這些容器啟動(dòng)后都是活動(dòng)的,彼此還是相互隔離的。我們對(duì)其中一個(gè)容器所做的變更只會(huì)局限于那個(gè)容器本身。

如果對(duì)容器的底層鏡像進(jìn)行修改,那么當(dāng)前正在運(yùn)行的容器是不受影響的,不會(huì)發(fā)生自動(dòng)更新現(xiàn)象。

如果想更新容器到其鏡像的新版本,那么必須當(dāng)心,確保我們是以正確的方式構(gòu)建了數(shù)據(jù)結(jié)構(gòu),否則我們可能會(huì)導(dǎo)致?lián)p失容器中所有數(shù)據(jù)的后果。

64字符的十六進(jìn)制的字符串來(lái)定義容器ID,它是容器的唯一標(biāo)識(shí)符。容器之間的交互是依靠容器ID識(shí)別的,由于容器ID的字符太長(zhǎng),我們通常只需鍵入容器ID的前4個(gè)字符即可。當(dāng)然,我們還可以使用容器名,但顯然用4字符的容器ID更為簡(jiǎn)便。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Docker容器時(shí)間與宿主機(jī)不一致/宿主機(jī)時(shí)間不同步校驗(yàn)問(wèn)題

    Docker容器時(shí)間與宿主機(jī)不一致/宿主機(jī)時(shí)間不同步校驗(yàn)問(wèn)題

    在Docker容器中,若未單獨(dú)配置localtime,可能導(dǎo)致時(shí)間與宿主機(jī)不一致,例如UTC與CST(東八區(qū))相差8小時(shí),解決方法包括在啟動(dòng)時(shí)通過(guò)docker run添加時(shí)間參數(shù),使用Dockerfile設(shè)置,或通過(guò)docker-compose配置,對(duì)于已運(yùn)行的容器
    2024-10-10
  • Docker desktop安裝mysql過(guò)程

    Docker desktop安裝mysql過(guò)程

    文章介紹了如何在本地已有的Docker環(huán)境中拉取并啟動(dòng)MySQL容器,并詳細(xì)說(shuō)明了常用的環(huán)境變量參數(shù),此外,還討論了如何通過(guò)掛接本地磁盤(pán)來(lái)持久化MySQL數(shù)據(jù),從而避免數(shù)據(jù)丟失
    2024-12-12
  • python腳本在docker上運(yùn)行的方法

    python腳本在docker上運(yùn)行的方法

    在本篇文章里小編給各位分享的是關(guān)于python腳本在docker上運(yùn)行的方法內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • docker firewalld 防火墻設(shè)置方式

    docker firewalld 防火墻設(shè)置方式

    在CentOS7中,Docker默認(rèn)修改防火墻配置,可能導(dǎo)致手動(dòng)添加的策略失效,解決方法包括啟用firewalld,禁用Docker的iptables,并重新配置防火墻策略,具體步驟包括編輯/etc/docker/daemon.json文件,重啟Docker服務(wù),以及在firewalld中設(shè)置偽裝地址和端口策略
    2024-10-10
  • Docker容器的使用方法簡(jiǎn)單示例

    Docker容器的使用方法簡(jiǎn)單示例

    這篇文章主要介紹了Docker容器的使用方法簡(jiǎn)單示例,包括拉取鏡像、運(yùn)行鏡像、測(cè)試容器內(nèi)的應(yīng)用、檢查主機(jī)端口及停止容器的操作方法,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-07-07
  • 利用Docker搭建Laravel開(kāi)發(fā)環(huán)境的完整步驟

    利用Docker搭建Laravel開(kāi)發(fā)環(huán)境的完整步驟

    這篇文章主要給大家介紹了關(guān)于如何利用Docker搭建Laravel開(kāi)發(fā)環(huán)境的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 通過(guò)Dockerfile構(gòu)建Docker鏡像的方法步驟

    通過(guò)Dockerfile構(gòu)建Docker鏡像的方法步驟

    這篇文章主要介紹了通過(guò)Dockerfile構(gòu)建Docker鏡像的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 限制?docker?使用cpu的常見(jiàn)方式

    限制?docker?使用cpu的常見(jiàn)方式

    在?Docker?中可以使用多種方法來(lái)限制容器對(duì)?CPU?的使用,下面給大家分享如何限制?docker?使用cpu,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Docker單機(jī)部署Doris超詳細(xì)圖文教程

    Docker單機(jī)部署Doris超詳細(xì)圖文教程

    Apache?Doris是一款基于MPP架構(gòu)的分析型數(shù)據(jù)庫(kù),由百度大數(shù)據(jù)部研發(fā),支持亞秒級(jí)響應(yīng)時(shí)間的實(shí)時(shí)數(shù)據(jù)分析,本文旨在為學(xué)習(xí)Doris的同學(xué)提供一個(gè)快速的操作指引,以便更高效地挖掘數(shù)據(jù)背后的價(jià)值,對(duì)docker?部署Doris?數(shù)據(jù)庫(kù)使用感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • docker使用jdk21啟動(dòng)jar包報(bào)錯(cuò)的解決方案

    docker使用jdk21啟動(dòng)jar包報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了docker使用jdk21啟動(dòng)jar包報(bào)錯(cuò)的解決方案,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07

最新評(píng)論