主機掛載儲存 docker資料卷(資料掛載)

2021-10-14 16:11:09 字數 1627 閱讀 6557

docker的映象是由多個唯讀的檔案系統疊加在一起形成的。當我們在我啟動乙個容器的時候,docker會載入這些唯讀層並在這些唯讀層的上面(棧頂)增加乙個讀寫層。這時如果修改正在執行的容器中已有的檔案,那麼這個檔案將會從唯讀層複製到讀寫層。該檔案的唯讀版本還在,只是被上面讀寫層的該檔案的副本隱藏。當刪除docker,或者重新啟動時,之前的更改將會消失。在docker中,唯讀層及在頂部的讀寫層的組合被稱為union file system(聯合檔案系統)。

為了很好的實現資料儲存和資料共享,docker提出了volume這個概念,簡單的說就是繞過預設的聯合檔案系統,而以正常的檔案或者目錄的形式存在於宿主機上。又被稱作資料卷。

摘自:docker在容器中管理資料主要有兩種方式:

- 資料卷(volumes)

- 掛載主機目錄(bind mounts)

資料卷是乙個可供乙個或多個容器使用的特殊目錄,它繞過ufs,可以提供很多有用的特性: - 資料卷可以在容器之間共享和重用 - 對資料卷的修改會立馬生效 - 對資料卷的更新,不會影響映象 - 資料卷缺省會一直存在,即使容器被刪除 docker中提供了兩種掛載方式,-v和-mount

建立資料卷

docker volume create mydata
檢視所有資料卷

docker volume ls
檢視資料卷資訊

注:mountpoint為資料在本機儲存的位置,如果磁碟儲存空間不足可修改此位置

掛載

方式一:

docker run --name ***x -p 8888:8888 -v /my:/docker -it imagename /bin/bash
--name: 為容器起名字

-p:宿主機埠:docker埠 (埠對映)

-v:宿主機目錄:docker目錄 (必須為絕對路徑)

方式二:

docker run --name ***x -p 8888:8888 --mount   

type:volume,source=/src/***,target=/*** /my:/docker -it imagename /bin/bash

type選項,其可以是bind,volume,或 tmpfs。本主題討論卷,因此型別始終是 volume

注意:使用-v引數時如果本地目錄不存在docker會自動為你建立乙個資料夾。使用--mount引數時如果本地目錄不存在,docker會報錯。docker掛載主機目錄的預設許可權是讀寫,使用者也可以通過增加readonly指定為唯讀。

docker run -it --name c1 -v /宿主機目錄:/docker目錄 -it imagename /bin/bash
參考:

Docker 資料管理(使用資料卷 掛載主機目錄)

在容器中管理資料的方式主要有兩種 資料卷 掛載主機目錄 可以在容器之間共享和重用 對資料卷的修改會馬上生效 對資料卷的更新不會影響映象 資料捲會一直存在,即使容器被刪除 建立乙個資料卷sudo docker volume create volume name 檢視所有的資料卷sudo docker ...

docker資料卷儲存

1.為什麼要使用docker資料卷 資料卷的作用 1 持久化容器執行過程中產生的資料檔案 2 實現多個容器間的檔案共享。正常情況下,刪除容器,容器中所有的檔案也會被刪除。2.常見的docker資料卷命令 建立乙個資料卷 docker volume create 檢視資料卷列表 docker volu...

(九) Docker 容器資料卷 掛載

一 容器資料卷 docker 容器資料卷是容器在執行過程中持久化資料的一種方式,卷是目錄或檔案,存在於乙個或多個容器中,由docker 掛載到容器,但不屬於聯合檔案系統,因此能夠繞過union file system 提供一些用於持續儲存或共享資料的特性 卷的設計目的就是資料持久化,完全獨立於容器的...