玩轉Docker系列5】Docker數據存儲

      網友投稿 778 2025-03-31

      1 docker數據存儲

      1.1??數據卷

      1.1.1?容器內創建數據卷

      數據卷是在一個或多個容器,它繞過Union File System的一個專門指定的目錄。數據卷的目的是持久化數據,獨立于容器的生命周期。docker因此不會自動刪除卷,當你刪除一個容器,也不會“垃圾回收”直到沒有容器再使用。

      在docker run時加上-v參數來添加一個數據卷,-v參數也可以使用多次,以掛載多個數據卷。

      UbuntuTest:~ ? # docker run -it --name data_volume -v /test ubuntu:14.04 ? /bin/bash

      root@0800180dc5be:/# ? ls -l /test

      drwxr-xr-x?? ? 2 root root 4096 Sep 20 11:00 test

      【玩轉Docker系列5】Docker數據存儲

      root@0800180dc5be:/# ? cd /test/

      root@0800180dc5be:/test# ? touch test.volume

      root@0800180dc5be:/test# ? ls

      test.volume

      root@0800180dc5be:/test# ? exit

      exit

      UbuntuTest:~ ? # docker start data_volume

      data_volume

      UbuntuTest:~ ? # docker attach data_volume

      root@0800180dc5be:/#

      root@0800180dc5be:/# ? ls -l /test/

      total 0

      -rw-r--r-- ? 1 root root 0 Sep 20 11:01 test.volume

      1.1.2???? 主機目錄作為數據卷

      掛載主機目錄為數據卷,必須參照-v hostPATH:containerPATH這種格式,路徑必須為絕對路徑,以保證容器的可移植性。

      該功能支持主機目錄和文件作為容器的數據卷。本文3.2.3章節在容器中安裝軟件時需要從主機通過命令拷貝軟件,部分容器不支持scp功能時還無法拷貝,利用該功能實現方式更簡單而不用關注容器是否支持遠程拷貝命令。

      UbuntuTest:~ # docker run -it --name data_host_container -v /root:/tmp/root ? ubuntu:14.04 /bin/bash

      root@2bda024d88d5:/# ? ls -l /tmp/root/

      total 1571632

      -rw-r--r--? 1 ? root root??? 148899 Sep? 7 10:41 ? CloudServiceTestTools.tgz

      root@2bda024d88d5:/# ? touch /tmp/root/container_data.test

      root@2bda024d88d5:/# ? exit

      exit

      UbuntuTest:~ # ls -l ? container_data.test

      -rw-r--r-- 1 root ? root 0 Sep 20 19:12 container_data.test

      1.2??? 數據卷容器

      如果你有一些持續更新的數據需要在容器之間共享,最好創建數據卷容器。 數據卷容器,其實就是一個正常的容器,專門用來提供數據卷供其它容器掛載的。

      步驟1:創建數據卷容器db_volume,其共享目錄為/dbdata

      UbuntuTest:~ # docker run -it -d -v ? /dbdata --name db_volume ubuntu:14.04 ? /bin/bash

      97aab02e3d582e585f40b92d711869598313eeb4d6b24d595985f192609de412

      UbuntuTest:~ # docker ? ps -l

      CONTAINER ? ID???? IMAGE???? ? COMMAND???? CREATED????? ? STATUS???? PORTS?????? ? NAMES

      97aab02e3d58??? ? ubuntu:14.04?? "/bin/bash"??? 11 seconds ? ago? Up 10 ? seconds????????????? ? db_volume

      步驟2:其它容器掛載數據卷容器db_volume的數據卷

      UbuntuTest:~ # docker run -it --name db_1 --volumes-from ? db_volume ubuntu:14.04 /bin/bash

      root@4123dfc817d2:/# ? echo "This is file of db_1" > /dbdata/db_1_file.log

      root@4123dfc817d2:/# ? ls -l /dbdata/

      total 4

      -rw-r--r-- 1 root ? root 21 Sep 20 11:29 db_1_file.log

      步驟3:容器db_1、db_2可同時讀寫數據卷

      UbuntuTest:~ # docker run -it --name db_2 --volumes-from ? db_volume ubuntu:14.04 /bin/bash

      root@7d399ccbe79e:/# ? cat /dbdata/db_1_file.log

      This is file of db_1

      轉載請注明出處:華為云博客 https://portal.hwclouds.com/blogs

      Docker

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:wps的智能工具箱在哪里(wpsexcel智能工具箱在哪)
      下一篇:如何計算Excel列或單元格中單詞或字符的數量?
      相關文章
      亚洲人成免费电影| 亚洲精品91在线| 国产亚洲玖玖玖在线观看| 18gay台湾男同亚洲男同| 国产亚洲精品自在久久| 亚洲无人区一区二区三区| 亚洲人成色777777在线观看| 亚洲人成色77777在线观看大| 亚洲av高清在线观看一区二区| 国产成人精品日本亚洲语音| 久久久久亚洲国产AV麻豆 | 日韩va亚洲va欧洲va国产| 最新国产AV无码专区亚洲| 亚洲天堂在线视频| 久久久久久亚洲精品不卡| 国产中文在线亚洲精品官网| 亚洲自偷自偷图片| 亚洲国产精品无码成人片久久| 亚洲国产成人高清在线观看 | 亚洲一级毛片免观看| 亚洲一级毛片免观看| 亚洲中文字幕久久久一区| 亚洲精品无码你懂的| 精品国产亚洲一区二区三区在线观看| 国产精品亚洲AV三区| 亚洲国产一区二区三区| 国产亚洲精午夜久久久久久| 亚洲精品无码MV在线观看| 久久精品夜色国产亚洲av| 亚洲第一永久在线观看| 77777亚洲午夜久久多喷| 亚洲精品无码专区久久| 午夜亚洲乱码伦小说区69堂| 亚洲午夜精品第一区二区8050| 亚洲人成人无码网www电影首页| 亚洲第一视频网站| 亚洲国产视频一区| 亚洲国产精品99久久久久久| 亚洲国产一成久久精品国产成人综合 | 亚洲欧美日韩一区二区三区 | 亚洲国产成人综合精品|