docker 概念

Docker是基于鏡像的别伏。鏡像類似于已經(jīng)包含了文件、配置和安裝好的程序的虛擬機(jī)鏡像正歼。同樣的,你可以像啟動(dòng)虛擬機(jī)一樣啟動(dòng)多個(gè)鏡像實(shí)例拷橘。運(yùn)行中的鏡像稱為容器局义。你可以修改容器(比如刪除一個(gè)文件),但這些修改不會(huì)影響到鏡像冗疮。不過萄唇,你使用docker commit <container-id> <image-name>命令可以把一個(gè)正在運(yùn)行的容器變成一個(gè)新的鏡像。
舉個(gè)例子:

像Docker官方的hello world例子一樣术幔,拉取一個(gè)叫busybox的鏡像 sudo docker pull busybox

# 查看本地已經(jīng)有哪些鏡像    # 我們可以看到busybox    sudo docker images
# 現(xiàn)在讓我們來修改下busybox鏡像的容器    # 這次另萤,我們創(chuàng)建一個(gè)文件夾    sudo docker run busybox mkdir /home/test
# 讓我們再看看我們有哪些鏡像了。    # 注意每條命令執(zhí)行后容器都會(huì)停止    # 可以看到有一個(gè)busybox容器    sudo docker ps -a
# 現(xiàn)在诅挑,可以提交修改了四敞。    # 提交后會(huì)看到一個(gè)新的鏡像busybox-1    #  <CONTAINER ID> 是剛剛修改容器后得到的ID    sudo docker commit <CONTAINER ID> busybox-1
# 再看看我們有哪些鏡像。    # 我們現(xiàn)在同時(shí)有busybox和busybox-1鏡像了拔妥。    sudo docker images
# 我們執(zhí)行以下命令忿危,看看這兩個(gè)鏡像有什么不同    sudo docker run busybox [ -d /home/test ] && echo 'Directory found' || echo 'Directory not found'    sudo docker run busybox-1 [ -d /home/test ] && echo 'Directory found' || echo 'Directory not found'

現(xiàn)在,我們有兩個(gè)不同的鏡像了(busybox和busybox-1)毒嫡,還有一個(gè)通過修改busybox容器得來的容器(多了一個(gè)/home/test文件夾)癌蚁。下面來看看幻梯,是如何持久化這些修改的。
導(dǎo)出(Export)
Export命令用于持久化容器(不是鏡像)努释。所以碘梢,我們就需要通過以下方法得到容器ID:
sudo docker ps -a
接著執(zhí)行導(dǎo)出:
sudo docker export <CONTAINER ID> > /home/export.tar

最后的結(jié)果是一個(gè)2.7MB大小的Tar文件(比使用save命令稍微小些)。

保存(Save)

Save命令用于持久化鏡像(不是容器)伐蒂。所以煞躬,我們就需要通過以下方法得到鏡像名稱:

sudo docker images

接著執(zhí)行保存:

sudo docker save busybox-1

/home/save.tar

最后的結(jié)果是一個(gè)2.8MB大小的Tar文件(比使用export命令稍微大些)。

它們之間的不同

現(xiàn)在我們創(chuàng)建了兩個(gè)Tar文件逸邦,讓我們來看看它們是什么恩沛。首先做一下小清理——把所有的容器和鏡像都刪除:

查看所有的容器 sudo docker ps -a

# 刪除它們    sudo docker rm <CONTAINER ID>

# 查看所有的鏡像    sudo docker images

# 刪除它們    sudo docker rmi busybox-1    sudo docker rmi busybox

譯注:可以使用 docker rm $(docker ps -q -a) 一次性刪除所有的容器,docker rmi $(docker images -q) 一次性刪除所有的鏡像缕减。

現(xiàn)在開始導(dǎo)入剛剛導(dǎo)出的容器:

導(dǎo)入export.tar文件 cat /home/export.tar | sudo docker import - busybox-1-export:latest

# 查看鏡像    sudo docker images

# 檢查是否導(dǎo)入成功雷客,就是啟動(dòng)一個(gè)新容器,檢查里面是否存在/home/test目錄(是存在的)    sudo docker run busybox-1-export [ -d /home/test ] && echo 'Directory found' || echo 'Directory not found'

使用類似的步驟導(dǎo)入鏡像:

導(dǎo)入save.tar文件 docker load < /home/save.tar

# 查看鏡像    sudo docker images

# 檢查是否導(dǎo)入成功桥狡,就是啟動(dòng)一個(gè)新容器搅裙,檢查里面是否存在/home/test目錄(是存在的)    sudo docker run busybox-1 [ -d /home/test ] && echo 'Directory found' || echo 'Directory not found'

那,它們之間到底存在什么不同呢裹芝?我們發(fā)現(xiàn)導(dǎo)出后的版本會(huì)比原來的版本稍微小一些部逮。那是因?yàn)閷?dǎo)出后,會(huì)丟失歷史和元數(shù)據(jù)嫂易。執(zhí)行下面的命令就知道了:

顯示鏡像的所有層(layer) sudo docker images --tree

執(zhí)行命令兄朋,顯示下面的內(nèi)容。正你看到的怜械,導(dǎo)出后再導(dǎo)入(exported-imported)的鏡像會(huì)丟失所有的歷史颅和,而保存后再加載(saveed-loaded)的鏡像沒有丟失歷史和層(layer)。這意味著使用導(dǎo)出后再導(dǎo)入的方式宫盔,你將無法回滾到之前的層(layer)融虽,同時(shí),使用保存后再加載的方式持久化整個(gè)鏡像灼芭,就可以做到層回滾(可以執(zhí)行docker tag <LAYER ID> <IMAGE NAME>
來回滾之前的層)有额。


vagrant@Ubuntu-13:~$ sudo docker images --tree
├─f502877df6a1 Virtual Size: 2.489 MB Tags: busybox-1-export:latest └─511136ea3c5a Virtual Size: 0 B
└─bf747efa0e2f Virtual Size: 0 B
└─48e5f45168b9 Virtual Size: 2.489 MB
└─769b9341d937 Virtual Size: 2.489 MB
└─227516d93162 Virtual Size: 2.489 MB Tags: busybox-1:latest


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市彼绷,隨后出現(xiàn)的幾起案子巍佑,更是在濱河造成了極大的恐慌,老刑警劉巖寄悯,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萤衰,死亡現(xiàn)場離奇詭異,居然都是意外死亡猜旬,警方通過查閱死者的電腦和手機(jī)脆栋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門倦卖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人椿争,你說我怎么就攤上這事怕膛。” “怎么了秦踪?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵褐捻,是天一觀的道長。 經(jīng)常有香客問我椅邓,道長柠逞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任景馁,我火速辦了婚禮板壮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘合住。我一直安慰自己个束,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布聊疲。 她就那樣靜靜地躺著,像睡著了一般沪悲。 火紅的嫁衣襯著肌膚如雪获洲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天殿如,我揣著相機(jī)與錄音贡珊,去河邊找鬼。 笑死涉馁,一個(gè)胖子當(dāng)著我的面吹牛门岔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烤送,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼寒随,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了帮坚?” 一聲冷哼從身側(cè)響起妻往,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎试和,沒想到半個(gè)月后讯泣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡阅悍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年好渠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昨稼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拳锚,死狀恐怖假栓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晌畅,我是刑警寧澤但指,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站抗楔,受9級(jí)特大地震影響棋凳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜连躏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一剩岳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧入热,春花似錦拍棕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尚困,卻和暖如春蠢箩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背事甜。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國打工谬泌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逻谦。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓掌实,卻偏偏與公主長得像,于是被迫代替她去往敵國和親邦马。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贱鼻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 一、Docker 簡介 Docker 兩個(gè)主要部件:Docker: 開源的容器虛擬化平臺(tái)Docker Hub: 用...
    R_X閱讀 4,382評(píng)論 0 27
  • Docker基礎(chǔ) 這篇基礎(chǔ)文章是方便用戶在使用cSphere平臺(tái)之前,了解docker基礎(chǔ)知識(shí)勇婴。針對(duì)已經(jīng)有一定的L...
    威谷子閱讀 994評(píng)論 0 11
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,728評(píng)論 1 21
  • Docker概念 鏡像 一個(gè)特殊的文件系統(tǒng)忱嘹,包含了操作系統(tǒng)完整的root文件系統(tǒng) 提供容器運(yùn)行時(shí)所需的程序、庫耕渴、資...
    漣漪之外閱讀 143評(píng)論 0 0
  • 兩個(gè)當(dāng)初誰不是信誓旦旦拘悦,才能最終走進(jìn)婚姻的殿堂。 寶強(qiáng)的出身大家都知道橱脸,從一個(gè)名副其實(shí)的草根到當(dāng)今炙手可熱的大明星...
    洞見人生百態(tài)閱讀 316評(píng)論 1 1