Docker學(xué)習(xí)筆記#2

一、存儲(chǔ)

docker的鏡像使用一層一層文件組成的,docker的一些存儲(chǔ)引擎可以處理怎么樣存儲(chǔ)這些文件。使用docker inspect這個(gè)命令可以查詢鏡像或者容器的詳細(xì)信息,比如要查看centos這個(gè)鏡像:

docker inspect centos
inspect

展示信息下方的Layers,就是centos的文件,這些東西都是只讀的不能去修改,我們基于這個(gè)鏡像去創(chuàng)建的鏡像和容器也會(huì)共享這些文件層,而docker會(huì)在這些層上面去添加一個(gè)可讀寫(xiě)的文件層。如果需要修改一些文件層里面的東西的話,docker會(huì)復(fù)制一份到這個(gè)可讀寫(xiě)的文件層里面,如果刪除容器的話,那么也會(huì)刪除它對(duì)應(yīng)的可讀寫(xiě)的文件層的文件。

演示

先創(chuàng)建一個(gè)帶交互的容器,管它名字叫test1。

docker run -i -t --name test1 centos /bin/bash

然后在里面新建一個(gè)文件,hello.txt。

demo

接著退出容器,使用centos創(chuàng)建第二個(gè)容器叫test2,試著輸出根目錄下的hello.txt文件的內(nèi)容。

test2

發(fā)現(xiàn)沒(méi)有找到此文件,雖然test1,test2都是基于centos鏡像創(chuàng)建的,但他們都擁有各自的可讀寫(xiě)的文件層,新創(chuàng)建的文件或者修改的已有的文件都會(huì)放到這個(gè)文件層,不會(huì)影響到鏡像本身和使用這個(gè)鏡像創(chuàng)建的容器。

刪除容器的時(shí)候,這些容器層上面的文件也會(huì)被刪除掉。

二、數(shù)據(jù)卷:Data Volumes

如果有些數(shù)據(jù)你想一直保存的話,比如:web服務(wù)器上面的日志,數(shù)據(jù)庫(kù)管理系統(tǒng)里面的數(shù)據(jù),那么我們可以把這些數(shù)據(jù)放到data volumes數(shù)據(jù)盤里面。它上面的數(shù)據(jù),即使把容器刪掉,也還是會(huì)永久保留。創(chuàng)建容器的時(shí)候,我們可以去指定數(shù)據(jù)盤。其實(shí)就是去指定一個(gè)特定的目錄,剩下的docker會(huì)幫你做。

指定數(shù)據(jù)盤的命令

docker run --volume /mnt -i -t --name db centos /bin/bash

說(shuō)明:--volume簡(jiǎn)寫(xiě)形式 -v,指定數(shù)據(jù)盤的目錄,注意目錄是要絕對(duì)路徑。

創(chuàng)建容器,并在這容器的數(shù)據(jù)盤里創(chuàng)建一個(gè)文件。

volume

查看容器信息:

db detail

Mounts下Source表示數(shù)據(jù)存在宿主機(jī)上的真實(shí)位置,Destination表示數(shù)據(jù)盤在docker中對(duì)應(yīng)的位置。及時(shí)刪除容器,Source下的數(shù)據(jù)也還會(huì)存在。

指定主機(jī)目錄作為數(shù)據(jù)盤

我們還可以手工指定主機(jī)上的目錄作為數(shù)據(jù)盤,比如,新建一個(gè)文件夾叫data,讓它作為數(shù)據(jù)盤,然后使用centos鏡像創(chuàng)建容器,命名為db,指定數(shù)據(jù)盤位置:

docker run -v /Users/beckjiang/Desktop/data:/mnt --name db -i -t centos /bin/bash

進(jìn)入容器后,在/mnt/ 目錄下創(chuàng)建文件data1,然后刪除容器,查看主機(jī)上/Users/beckjiang/Desktop/data 里面,仍然會(huì)保留容器里面創(chuàng)建的數(shù)據(jù)。

volume2

三、數(shù)據(jù)容器

我們可以創(chuàng)建一個(gè)數(shù)據(jù)容器,也就是再創(chuàng)建容器是指定這個(gè)容器的數(shù)據(jù)盤,然后讓其他容器可以使用這個(gè)容器作為他們的數(shù)據(jù)盤,有點(diǎn)像繼承了這個(gè)數(shù)據(jù)容器指定的數(shù)據(jù)盤作為數(shù)據(jù)盤。

先來(lái)創(chuàng)建一個(gè)數(shù)據(jù)容器

docker create -v /mnt -i -t --name dbcenter centos /bin/bash
dbcenter

接著使用這個(gè)數(shù)據(jù)容器,去創(chuàng)建一個(gè)容器 db1

docker run --volumes-from dbcenter --name db1 -i -t centos bash

在/mnt/目錄下創(chuàng)建data1文件:


Paste_Image.png

完成以后退出容器,基于dbcenter這個(gè)數(shù)據(jù)容器去創(chuàng)建第二個(gè)容器 db2:

docker run --volumes-from dbcenter --name db2 -i -t centos bash
db2

查看/mnt/目錄下的文件,會(huì)看到在db1容器中創(chuàng)建的data1文件。同樣的,你在db2中的/mnt/目錄創(chuàng)建的數(shù)據(jù)文件,也會(huì)被其他使用了dbcenter作為數(shù)據(jù)容器的容器所看到。

四、管理數(shù)據(jù)盤

查看主機(jī)上面創(chuàng)建的數(shù)據(jù)盤

docker volume ls
volumels

在刪除容器時(shí),docker默認(rèn)不會(huì)刪除其數(shù)據(jù)盤。這里可以** 查看沒(méi)有容器在使用的數(shù)據(jù)盤 **:

docker volume ls -f dangling=true
Paste_Image.png

出現(xiàn)的就是沒(méi)有容器在使用的數(shù)據(jù)盤,想要** 刪除數(shù)據(jù)盤 **可以使用:

docker volume rm VOLUME NAME
Paste_Image.png

把沒(méi)有容器使用的數(shù)據(jù)盤都刪除掉以后,還剩下1個(gè)正在被使用的數(shù)據(jù)盤,就是上面創(chuàng)建的數(shù)據(jù)容器。

如果想要?jiǎng)h除容器時(shí),同時(shí)刪除掉其數(shù)據(jù)盤,那么可以使用-v參數(shù)。(db1,db2使用dbcenter作為數(shù)據(jù)盤,先將其刪掉)

docker rm -v dbcenter
rm-v

因?yàn)閯h除容器也把數(shù)據(jù)盤給刪了,所以執(zhí)行docker volume ls,數(shù)據(jù)盤為空。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡(jiǎn)介 Docke...
    極客圈閱讀 10,756評(píng)論 0 120
  • 本來(lái)想直接對(duì)照書(shū):《容器與容器云》來(lái)直接寫(xiě)如何搭建一個(gè)Docker應(yīng)用棧的,但是發(fā)現(xiàn)很多基礎(chǔ)只是不理清楚只會(huì)更加懵...
    Elitack閱讀 333評(píng)論 0 0
  • Docker — 云時(shí)代的程序分發(fā)方式 要說(shuō)最近一年云計(jì)算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,850評(píng)論 15 147
  • 0. 前言 docker是什么?docker是用GO語(yǔ)言開(kāi)發(fā)的應(yīng)用容器引擎,基于容器化,沙箱機(jī)制的應(yīng)用部署技術(shù)???..
    sessionboy閱讀 4,011評(píng)論 2 49
  • 文:墨指含香 葉子知命而落 蟬高高掛在枝條上 一整天 秋風(fēng)倒灌進(jìn)身體 聽(tīng)到它們 用磨利的嘴咬緊空氣 撕裂的聲音 像...
    墨指含香閱讀 337評(píng)論 0 1

友情鏈接更多精彩內(nèi)容