Docker 命令-數據卷(10)

數據卷:數據卷就是在宿主中能夠在容器之間進行共享和重用的一系列和文件和文件夾,經過docker run -v命令能夠將數據卷掛載到對應的容器目錄空間,進行文件讀取,容器卷特性以下docker

  • 數據卷能夠在容器之間共享和重用,容器間傳遞數據將變得高效方便
  • 對數據卷內數據的修改會立馬生效,不管是容器內操做仍是本地操做
  • 對數據卷的更新不會影響鏡像,解耦了應用和數據
  • 卷會一直存在,直到沒有容器使用,能夠安全地卸載它
    數據卷容器:接數據卷,已經存在一個掛載了數據卷的容器;因爲數據卷在容器以前是能夠共享的,因此此時若是存在其餘容器經過docker run --volumes-from [容器別名]命令掛載到該容器上,則該容器能夠被稱之爲數據卷容器,其主要功能是提供數據卷供其餘容器掛載。當數據卷容器宕機後,並不會形成數據卷的回收卸載,數據卷會繼續掛載在其餘容器中。當所有掛載該數據卷的容器所有宕機後,該數據卷纔會卸載
    添加數據卷
    添加數據卷 docker run -it -v /宿主機據對路徑/容器內目錄 鏡像名
    docker run -it -v /mydataVolume:/dockerVolume centos
    在宿主機上訪問mydataVolume文件夾添加文件直接會同步到容器的dockerVolume文件夾中,反之同樣的效果,當docker運行退出關閉,再向宿主 mydataVolume添加文件,當docker 從新啓動,數據會同步
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    添加數據卷帶權限(只讀read only )docker run -it -v /宿主機據對路徑/容器內目錄 ro 鏡像名
    docker run -it -v /mydataVolume:/dockerVolume:ro centos
    Docker 命令-數據卷(10)
    宿主機添加文件能同步到docker內,可是docker內不能編輯文件,只容許單項操做
    Docker 命令-數據卷(10)
    新建鏡像添加數據卷
    新建鏡像參數
    #volume test
    FROM centos
    VOLUME ["/dataVolumeContainer1",」/dataVolumeContainer2"]
    CMD echo "finished,--------------------success1"
    CMD /bin/bash
    新建鏡像命令docker build -f(指定要使用的Dockerfile路徑)dockerfile -t(--tag, -t: 鏡像的名字及標籤,一般 name:tag 或者 name 格式;能夠在一次構建中爲一個鏡像設置多個標籤。)
    docker build -f /root/dockerfile/Dockerfile -t stonehu/centos:1.2 .
    Docker 命令-數據卷(10)
    查看數據卷
    Docker 命令-數據卷(10)
    在docker數據卷內添加文件,查看本地宿主機,文件是否存在
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    或者能夠用如下命令查詢
    docker inspect -f {{.ContainerConfig.Volumes}} stonehu/centos:1.2
    Docker 命令-數據卷(10)
    容器間數據共享—volumes-from
    運行容器起名爲dc01,在數據卷中添加文件,用ctrl+p+q退出dc01,運行第二容器採用—volumes-from dc01 連接第二個容器,使容器中的數據卷互通
    docker run -it --name dc01 stonehu/centos:1.2
    docker run -it --name dc02 --volumes-from dc01 stonehu/centos:1.2
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    驗證數據共享
    docker attach dc02
    Docker 命令-數據卷(10)
    刪除其中一個docker其餘docker的數據卷依然存在依然能夠操做創建
    刪除dc01,查看其它dc02 dc03數據卷是否存在,通過驗證都在,其實數據卷內數據是存在宿主記得本地的
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
    Docker 命令-數據卷(10)
相關文章
相關標籤/搜索