亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

淺談docker Dockerfile 指令 VOLUME 介紹

2024-09-01 13:50:46
字體:
來源:轉載
供稿:網友

在介紹VOLUME指令之前,我們來看下如下場景需求:

1)容器是基于鏡像創建的,最后的容器文件系統包括鏡像的只讀層+可寫層,容器中的進程操作的數據持久化都是保存在容器的可寫層上。一旦容器刪除后,這些數據就沒了,除非我們人工備份下來(或者基于容器創建新的鏡像)。能否可以讓容器進程持久化的數據保存在主機上呢?這樣即使容器刪除了,數據還在。

2)當我們在開發一個web應用時,開發環境是在主機本地,但運行測試環境是放在docker容器上。

這樣的話,我在主機上修改文件(如html,js等)后,需要再同步到容器中。這顯然比較麻煩。

3)多個容器運行一組相關聯的服務,如果他們要共享一些數據怎么辦?

對于這些問題,我們當然能想到各種解決方案。而docker本身提供了一種機制,可以將主機上的某個目錄與容器的某個目錄(稱為掛載點、或者叫卷)關聯起來,容器上的掛載點下的內容就是主機的這個目錄下的內容,這類似linux系統下mount的機制。 這樣的話,我們修改主機上該目錄的內容時,不需要同步容器,對容器來說是立即生效的。 掛載點可以讓多個容器共享。

下面我們來介紹具體的機制。

一、通過docker run命令

1、運行命令:docker run --name test -it -v /home/xqh/myimage:/data ubuntu /bin/bash

其中的 -v 標記 在容器中設置了一個掛載點 /data(就是容器中的一個目錄),并將主機上的 /home/xqh/myimage 目錄中的內容關聯到 /data下。

這樣在容器中對/data目錄下的操作,還是在主機上對/home/xqh/myimage的操作,都是完全實時同步的,因為這兩個目錄實際都是指向主機目錄。

2、運行命令:docker run --name test1 -it -v /data ubuntu /bin/bash

上面-v的標記只設置了容器的掛載點,并沒有指定關聯的主機目錄。這時docker會自動綁定主機上的一個目錄。通過docker inspect 命令可以查看到。

xqh@ubuntu:~/myimage$ docker inspect test1[{  "Id": "1fd6c2c4bc545163d8c5c5b02d60052ea41900a781a82c20a8f02059cb82c30c",.............................  "Mounts": [    {      "Name": "0ab0aaf0d6ef391cb68b72bd8c43216a8f8ae9205f0ae941ef16ebe32dc9fc01",      "Source": "/var/lib/docker/volumes/0ab0aaf0d6ef391cb68b72bd8c43216a8f8ae9205f0ae941ef16ebe32dc9fc01/_data",      "Destination": "/data",      "Driver": "local",      "Mode": "",      "RW": true    }  ],...........................

上面 Mounts下的每條信息記錄了容器上一個掛載點的信息,"Destination" 值是容器的掛載點,"Source"值是對應的主機目錄。

可以看出這種方式對應的主機目錄是自動創建的,其目的不是讓在主機上修改,而是讓多個容器共享。

二、通過dockerfile創建掛載點

上面介紹的通過docker run命令的-v標識創建的掛載點只能對創建的容器有效。

通過dockerfile的 VOLUME 指令可以在鏡像中創建掛載點,這樣只要通過該鏡像創建的容器都有了掛載點。

還有一個區別是,通過 VOLUME 指令創建的掛載點,無法指定主機上對應的目錄,是自動生成的。

#testFROM ubuntuMAINTAINER hello1VOLUME ["/data1","/data2"]

上面的dockfile文件通過VOLUME指令指定了兩個掛載點 /data1 和 /data2.

我們通過docker inspect 查看通過該dockerfile創建的鏡像生成的容器,可以看到如下信息

  "Mounts": [    {      "Name": "d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21",      "Source": "/var/lib/docker/volumes/d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21/_data",      "Destination": "/data1",      "Driver": "local",      "Mode": "",      "RW": true    },    {      "Name": "6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36",      "Source": "/var/lib/docker/volumes/6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36/_data",      "Destination": "/data2",      "Driver": "local",      "Mode": "",      "RW": true    }  ],

可以看到兩個掛載點的信息。

三、容器共享卷(掛載點)

docker run --name test1 -it myimage /bin/bash

上面命令中的 myimage是用前面的dockerfile文件構建的鏡像。 這樣容器test1就有了 /data1 和 /data2兩個掛載點。

下面我們創建另一個容器可以和test1共享 /data1 和 /data2卷 ,這是在 docker run中使用 --volumes-from標記,如:

可以是來源不同鏡像,如:

docker run --name test2 -it --volumes-from test1 ubuntu /bin/bash

也可以是同一鏡像,如:

docker run --name test3 -it --volumes-from test1 myimage /bin/bash

上面的三個容器 test1 , test2 , test3 均有 /data1 和 /data2 兩個目錄,且目錄中內容是共享的,任何一個容器修改了內容,別的容器都能獲取到。

四、最佳實踐:數據容器

如果多個容器需要共享數據(如持久化數據庫、配置文件或者數據文件等),可以考慮創建一個特定的數據容器,該容器有1個或多個卷。

其它容器通過--volumes-from 來共享這個數據容器的卷。

因為容器的卷本質上對應主機上的目錄,所以這個數據容器也不需要啟動。

如:

docker run --name dbdata myimage echo "data container"

說明:有個卷,容器之間的數據共享比較方便,但也有很多問題需要解決,如權限控制、數據的備份、卷的刪除等。這些內容后續文章介紹。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
大荫蒂欧美视频另类xxxx| 亚洲一区二区精品| 91精品国产综合久久香蕉的用户体验| 色综合影院在线| 欧美成人黄色小视频| 中文字幕久热精品在线视频| 大荫蒂欧美视频另类xxxx| 欧美天天综合色影久久精品| 国产亚洲综合久久| 欧美精品一区在线播放| 亚洲欧美福利视频| 国产精品嫩草视频| 欧美亚洲第一区| 久久久久国产精品免费| 欧美精品在线免费观看| 久久免费国产精品1| 亚洲跨种族黑人xxx| 日韩精品亚洲精品| 中国日韩欧美久久久久久久久| 最新亚洲国产精品| 亚洲国语精品自产拍在线观看| 不卡av在线播放| 久久久久久亚洲精品| 久久精品亚洲国产| 亚洲a级在线播放观看| 国产欧美日韩免费看aⅴ视频| 亚洲欧美中文字幕在线一区| 人人做人人澡人人爽欧美| 亚洲福利视频二区| 亚洲精品免费av| 91福利视频网| 国产成人精品网站| 国产欧美久久久久久| 久久久久久久久久婷婷| 国产成人综合精品在线| 麻豆一区二区在线观看| 日韩中文av在线| 亚洲美女自拍视频| 欧美激情视频一区二区三区不卡| 欧美亚洲视频在线看网址| 富二代精品短视频| 国产福利精品av综合导导航| 亚洲色在线视频| 国产精品久久久久久av福利| 精品中文字幕在线观看| 91网站免费观看| 社区色欧美激情 | 日韩美女免费观看| 疯狂蹂躏欧美一区二区精品| 国产一区二区丝袜| 成人久久久久爱| 国产精品女主播| 国产午夜精品全部视频在线播放| 高清视频欧美一级| 久久99青青精品免费观看| 日韩av不卡电影| 91精品国产高清| 成人美女免费网站视频| 欧美亚洲国产另类| 欧美激情一区二区久久久| 高清欧美电影在线| 日韩69视频在线观看| 亚洲久久久久久久久久| 91tv亚洲精品香蕉国产一区7ujn| 日韩在线www| 亚洲加勒比久久88色综合| 在线观看国产精品日韩av| 日韩美女视频中文字幕| 日韩欧美在线视频日韩欧美在线视频| 97成人超碰免| 欧美日韩一区二区免费视频| 精品亚洲一区二区三区在线观看| 欧美亚洲在线视频| 91天堂在线观看| 国产精品久久久久久久久久久新郎| 成人福利在线视频| 亚洲色无码播放| 色视频www在线播放国产成人| 成人性生交大片免费看小说| 91av在线国产| 日韩久久精品成人| 国产一区二区在线免费视频| 最近免费中文字幕视频2019| 欧美理论片在线观看| 亚洲欧美日韩一区在线| 97不卡在线视频| 欧美大片欧美激情性色a∨久久| 亚洲深夜福利在线| 欧美黑人性视频| 26uuu亚洲国产精品| 九九热这里只有精品免费看| 日本精品免费观看| 在线观看中文字幕亚洲| 日韩精品福利网站| 国产在线拍偷自揄拍精品| 性色av一区二区三区| 91wwwcom在线观看| 欧美激情精品久久久久久久变态| 亚洲国内高清视频| 久久男人资源视频| 日av在线播放中文不卡| 中文字幕一区二区三区电影| 亚洲午夜精品久久久久久性色| 亚洲一区二区中文| 亚洲曰本av电影| 中文字幕亚洲欧美日韩高清| 国产精品电影在线观看| 青草青草久热精品视频在线网站| 亚洲色图17p| 中文字幕欧美日韩va免费视频| 亚洲高清不卡av| 日韩在线视频播放| 成人av.网址在线网站| 久热国产精品视频| 高清欧美电影在线| 成人激情av在线| 日韩在线视频导航| 国产欧美va欧美va香蕉在| 亚洲成人av中文字幕| 亚洲男人天堂视频| 亚洲一区二区在线| 久久久久久久999| 日韩福利伦理影院免费| 欧美性猛交xxxx乱大交极品| 欧美在线xxx| 亚洲美女自拍视频| 亚洲美女av在线播放| 国产一区二区三区欧美| 成人网在线视频| 国产综合香蕉五月婷在线| 国产精品欧美激情| 国产亚洲精品日韩| 日韩精品有码在线观看| 日韩欧美精品网址| 日韩中文字幕在线视频播放| 日韩最新av在线| 欧美在线亚洲在线| 69久久夜色精品国产69乱青草| 国产一区二区激情| 午夜欧美大片免费观看| 91亚洲午夜在线| 91久久久精品| 中文字幕在线看视频国产欧美在线看完整| 精品亚洲国产成av人片传媒| 国产精品99久久久久久人| 亚洲欧美成人在线| 午夜免费在线观看精品视频| 亚洲国产精品嫩草影院久久| 这里只有精品丝袜| 国产成人精品视频| 中国日韩欧美久久久久久久久| 日韩免费观看网站| 国产精品激情av电影在线观看| 热re91久久精品国99热蜜臀| 久久久久久久电影一区| 亚洲色图五月天| 国产精品欧美日韩久久| 美女精品久久久| 久久久久久久影院| xxav国产精品美女主播| 欧美激情精品久久久久| 欧美插天视频在线播放| 91超碰中文字幕久久精品| 亚洲一区二区福利|