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 提供一些用於持續儲存或共享資料的特性 卷的設計目的就是資料持久化,完全獨立於容器的...