Docker Volume
Docker提出的Volume的概念,簡單來說,volume就是目錄或者文件,它可以繞過默認的聯合文件系統,而已正常的文件或目錄的形式存在宿主機上。實現持久化的數據保存。
Docker中,只讀層在頂部的讀寫層的組合稱爲union File System(聯合文件系統)
Volume 可以將容器以及容器產生的數據隔離開,當你是使用docker rm
刪除容器時,不會影響相關的數據。
Docker管理數據的兩種方式:數據卷
: 數據卷容器
數據卷 :實現數據的持久存儲。
:實現在多個容器中共享數據。
數據卷的使用,類似於linux下對目錄進行mount,你想在容器中使用宿主機上的目錄,(即把宿主機上的文件或目錄掛載給容器)可以通過-v 來指定
例如 :Docker run -v /host/path:/some/path(可以使用多次-v 選項爲一個容器掛載多個本地主機目錄)
注意:冒號前是宿主機目錄,冒號後是容器中的掛載點(宿主機的路徑和容器中的掛載點都可以不存在,目錄將自動在給定的路徑中創建)
掛載當前主機的一個目錄到容器中
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查看