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