Docker提出的Volume的概念,簡單來講,volume就是目錄或者文件,它能夠繞過默認的聯合文件系統,而已正常的文件或目錄的形式存在宿主機上。實現持久化的數據保存。html
Docker中,只讀層在頂部的讀寫層的組合稱爲union File System(聯合文件系統)linux
Volume 能夠將容器以及容器產生的數據隔離開,當你是使用docker rmweb
刪除容器時,不會影響相關的數據。docker
Docker管理數據的兩種方式:數據卷app
: 數據卷容器webapp
數據卷 :實現數據的持久存儲。ide
:實如今多個容器中共享數據。spa
數據卷的使用,相似於linux下對目錄進行mount,你想在容器中使用宿主機上的目錄,(即把宿主機上的文件或目錄掛載給容器)能夠經過-v 來指定3d
例如 :Docker run -v /host/path:/some/path(能夠使用屢次-v 選項爲一個容器掛載多個本地主機目錄)orm
注意:冒號前是宿主機目錄,冒號後是容器中的掛載點(宿主機的路徑和容器中的掛載點均可以不存在,目錄將自動在給定的路徑中建立)
掛載當前主機的一個目錄到容器中
1 建立一個Web容器,並加載一個宿主機目錄到容器的/var/www/html/目錄下(在宿主機上建立/web/webapp目錄,並建立一個indexx.html文件)
2 查看鏡像,並使用鏡像建立容器(加載主機的/web/webapp目錄到容器的/var/www/html/目錄下)
3 查看掛載的目錄
4 在瀏覽其中,使用宿主機的IP和端口號,訪問
添加一個或多個數據卷
1 建立一個數據卷(它們告訴Docker在主機上建立一個目錄,默認狀況下是在/var/lib/docker/volumes下,而後將其掛載到指定的路徑下)
建立數據卷綁定到新建容器,新建容器中會建立/data數據卷
2 進入容器,查看給容器添加的數據卷(使用Ctrl -p ctrl -q 退出容器)
3 查看獲取的主機對應路徑(說明docker把/var/lib/docker下的某個目錄掛載到了容器的/data目錄下)
4 在宿主機上添加文件到此文件夾下
Docker掛載數據卷的默認權限是讀寫,用戶能夠經過:ro指定爲只讀
數據卷容器
若是受權一個容器訪問另外一個容器的volume,咱們能夠使用—volume-from來
1 建立一個命名的數據卷容器
2 而後,能夠在其餘容器中使用—volumes-from 來掛載/test卷
3 進入test1 test2 test3容器,執行df查看