日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

docker 容器数据卷

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker 容器数据卷 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.是什么

先來(lái)看看Docker的理念:

  • 將運(yùn)用與運(yùn)行的環(huán)境打包形成容器運(yùn)行 ,運(yùn)行可以伴隨著容器,但是我們對(duì)數(shù)據(jù)的要求希望是持久化的

  • 容器之間希望有可能共享數(shù)據(jù)

Docker容器產(chǎn)生的數(shù)據(jù),如果不通過(guò)docker commit生成新的鏡像,使得數(shù)據(jù)做為鏡像的一部分保存下來(lái),

那么當(dāng)容器刪除后,數(shù)據(jù)自然也就沒(méi)有了。

為了能保存數(shù)據(jù)在docker中我們使用卷。

一句話:有點(diǎn)類似我們Redis里面的rdb和aof文件

2.能干嗎

卷就是目錄或文件,存在于一個(gè)或多個(gè)容器中,由docker掛載到容器,但不屬于聯(lián)合文件系統(tǒng),因此能夠繞過(guò)Union File System提供一些用于持續(xù)存儲(chǔ)或共享數(shù)據(jù)的特性:

卷的設(shè)計(jì)目的就是數(shù)據(jù)的持久化,完全獨(dú)立于容器的生存周期,因此Docker不會(huì)在容器刪除時(shí)刪除其掛載的數(shù)據(jù)卷

特點(diǎn):

1:數(shù)據(jù)卷可在容器之間共享或重用數(shù)據(jù)

2:卷中的更改可以直接生效

3:數(shù)據(jù)卷中的更改不會(huì)包含在鏡像的更新中

4:數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止

使用

以centos鏡像跑個(gè)容器 在數(shù)據(jù)卷位置 在宿主機(jī)/myDataVolume 文件位置 容器 /dataVolumeContainer centos 文件位置
docker run -it -v /myDataVolume:/dataVolumeContainer centos
只讀權(quán)限(容器只有讀的權(quán)限)
docker run -it -v /myDataVolume:/dataVolumeContainer:ro centos

docker inspect [容器ID] 查看是否成功
找到下面內(nèi)容 就是成功了

"Mounts": [{"Type": "bind","Source": "/myDataVolume", # 宿主機(jī)共享文件位置"Destination": "/dataVolumeContainer", # 容器共享文件位置"Mode": "","RW": true, # 可讀寫"Propagation": "rprivate"}],

dockerfile

可以自定義創(chuàng)作鏡像的文件

docker build -f /mydata/dockerfile -t zzyy/centos .
-f file 指定文件
-t 命名空間
. 在當(dāng)前目錄

VOLUME["/dataVolumeContainer","/dataVolumeContainer2","/dataVolumeContainer3"]
說(shuō)明:
出于可移植和分享的考慮,用-v 主機(jī)目錄:容器目錄這種方法不能夠直接在Dockerfile中實(shí)現(xiàn)。
由于宿主機(jī)目錄是依賴于特定宿主機(jī)的,并不能夠保證在所有的宿主機(jī)上都存在這樣的特定目錄。

vim Dockerfile 輸入下面內(nèi)容

# volume testFROM centosVOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]CMD echo "finished,--------success1"CMD /bin/bash

運(yùn)行命令

root@wang-virtual-machine:/mydocker# docker build -f /mydocker/Dockerfile -t zzyy/centos . Sending build context to Docker daemon 2.048kB Step 1/4 : FROM centos---> 300e315adb2f Step 2/4 : VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]---> Running in 64c5c825c32e Removing intermediate container 64c5c825c32e---> 341e53b2e802 Step 3/4 : CMD echo "finished,--------success1"---> Running in 2119f9efca79 Removing intermediate container 2119f9efca79---> 90fb287eb281 Step 4/4 : CMD /bin/bash---> Running in e49f7edd5dd3 Removing intermediate container e49f7edd5dd3---> d5844312258b Successfully built d5844312258b Successfully tagged zzyy/centos:latest REPOSITORY TAG IMAGE ID CREATED SIZE zzyy/centos latest d5844312258b 21 seconds ago 209MB atguigu/mytomcat 1.2 b1b8324a0dec 4 hours ago 650MB tomcat latest 040bdb29ab37 6 weeks ago 649MB nginx latest f6d0b4767a6c 6 weeks ago 133MB centos latest 300e315adb2f 2 months ago 209MB "Mounts": [{"Type": "volume","Name": "b80080372c5184aa64d251a0655f678e03b9cbdcf6a302966106c6e10b9e486a","Source": "/var/lib/docker/volumes/b80080372c5184aa64d251a0655f678e03b9cbdcf6a302966106c6e10b9e486a/_data","Destination": "/dataVolumeContainer1","Driver": "local","Mode": "","RW": true,"Propagation": ""},{"Type": "volume","Name": "e387ebcbb56a7230f2fdd8d6f1aec8d574d458432c7f6613894bf60b65e91583","Source": "/var/lib/docker/volumes/e387ebcbb56a7230f2fdd8d6f1aec8d574d458432c7f6613894bf60b65e91583/_data","Destination": "/dataVolumeContainer2","Driver": "local","Mode": "","RW": true,"Propagation": ""}],

宿主機(jī)文件位置:
/var/lib/docker/volumes/b80080372c5184aa64d251a0655f678e03b9cbdcf6a302966106c6e10b9e486a/_data
容器文件位置:
/dataVolumeContainer1

–volumes-from 容器間傳遞共享

命名的容器掛載數(shù)據(jù)卷,其它容器通過(guò)掛載這個(gè)(父容器)實(shí)現(xiàn)數(shù)據(jù)共享,掛載數(shù)據(jù)卷的容器,稱之為數(shù)據(jù)卷容器(可以理解為一個(gè)硬盤上連接幾個(gè)硬盤。其他硬盤繼承這個(gè)硬盤)

docker run -it --name dc04 --volumes-from dc03 zzyy/centos

dc04容器 掛載 dc03 鏡像是zzyy/centos

容器之間配置信息的傳遞,數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止(父容器刪除不影響掛載文件,直到引用為0才會(huì)消失)

總結(jié)

以上是生活随笔為你收集整理的docker 容器数据卷的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。