Docker--数据管理之Volumes
前言:我們知道docker容器內(nèi)產(chǎn)生或修改的數(shù)據(jù)僅在該容器內(nèi)有效,即容器關(guān)閉,其之前產(chǎn)生或修改的數(shù)據(jù)也就刪除了,這明顯不能滿足我們大多數(shù)場景的需求。當(dāng)然這只是默認(rèn),docker為我們提供了多種保存數(shù)據(jù)的方式。如下
方式一:Volumes--它是由docker管理和創(chuàng)建的(也是和Bind mounts主要區(qū)別bie),你可以在使用它之前創(chuàng)建也可以在啟動容器的時候一起創(chuàng)建。在啟動的時候不指定名稱就是匿名volumes。更重要的是它支持volume drivers(驅(qū)動),這樣就可以支持遠(yuǎn)程共享數(shù)據(jù)(這也是docker官方推薦使用的原因和Bing mounts的重要區(qū)別)
方式二:Bind mounts--和Volumes很相似,除上面提到的區(qū)別
方式三:tmpfs mounts--它并沒有提供持久化的支持,只是提供的多個容器在主機內(nèi)存共享數(shù)據(jù)的支持。
圖解: Host-主機,F(xiàn)ilesystem-主機的文件系統(tǒng),Docker area - “/var/lib/docker/volumes/”目錄 ,箭頭->綁定方式
本次僅學(xué)習(xí)Volumes:方式,也是docker推薦的方式
一:簡介Volumes的增刪查方式
1.1 創(chuàng)建一個Volumes命名為my-vol
  docker volume create [my-vol]
1.2 查詢列表(已創(chuàng)建的Volumes)
  docker volume ls
1.3 查看
  docker volume inspect [my-vol]
1.4 刪除
  docker volume rm [my-vol]
二:使用場景
場景假設(shè):假設(shè)我的centos鏡像,其根目錄下有一個app目錄,我在該目錄下創(chuàng)建的任何數(shù)據(jù)我想讓它持久保留(即:容器關(guān)閉或者死掉下次啟動我仍能看到之前穿件的數(shù)據(jù)),或者在多個容器之前共享該app目錄下的內(nèi)容。
步驟一: 創(chuàng)建Volumes并命名為my-vol
步驟二:啟動centos鏡像,并綁定Volumes
docker run -d -it --name=1-OS --mount source=my-vol,target=/app2 centos
note1:進(jìn)入容器 ,查看根目錄(),進(jìn)入app2目錄(即target目錄)
docker exec -it 1-OS /bin/bash
步驟三:校驗Volumes是否綁定成功
docker inspect [容器ID或名字]
docker inspect 1-OS
備注1:選擇--mount
它是有多個鍵-值(key-value)對,并通過","分割組成的可用參數(shù)。
  type - : 指定綁定的類型,可選值有bind,volume, ortmpfs,默認(rèn)是volume。
source - :指定一個已創(chuàng)建的Volumes名字。因為Volumes指定了對應(yīng)主機的那個目錄去和容器
destination:指定容器的目錄,用于與source目錄對用
readonly:再議
volume-opt:再議
備注2:
檢驗1:在當(dāng)前容器目錄下創(chuàng)建一個文件(hello-volume.txt),并在主機目錄下查看該文件
【1】在容器內(nèi)創(chuàng)建
·
【2】在主機查看
校驗2:另起一個容器,并綁定同一個數(shù)據(jù)卷(my-vol),查看數(shù)據(jù)是否共用
結(jié)論,另起的容器已共享Valumes數(shù)據(jù)
參考文檔:https://docs.docker.com/storage/
總結(jié)
以上是生活随笔為你收集整理的Docker--数据管理之Volumes的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 牙弓扩张器戴多久
- 下一篇: 存储--盘古_阿里云飞天分布式存储系统设
