在容器中管理資料主要有兩種方式:
資料卷是乙個可供乙個或多個容器使用的特殊目錄,它繞過ufs,可以提供很多有用的特性:
注意: 資料卷的使用,類似於linux下對目錄或檔案進行mount,映象中的被指定為掛載點的目錄中的檔案會隱藏掉,能顯示看的是掛載的資料卷。
docker中提供了兩種掛載方式,-v和-mount
docker新使用者應該選擇 --mount引數
經驗豐富的docker使用者對-v或者--volume已經很熟悉了,但是推薦使用-mount引數。
建立乙個資料卷
docker volume create my-volume
檢視指定資料卷的資訊
docker volume inspect my-volume
啟動乙個掛載資料卷的容器:
在用docker run命令的時候,使用--mount標記來將資料卷掛載到容器裡。
# 方法一
# 方法二
刪除資料卷
docker volume rm my-volume
資料卷是被設計用來持久化資料的,它的生命週期獨立於容器,docker不會在容器被刪除後自動刪除資料卷,並且也不存在垃圾**這樣的機制來處理沒有任何容器引用的資料卷。
如果需要在刪除容器的同時移除資料卷。可以在刪除容器的時候使用docker rm -v這個命令。
無主的資料卷可能會佔據很多空間,要清理請使用以下命令
docker volume prune
使用--mount標記可以指定掛載乙個本地主機的目錄到容器中去
# 方法一
docker run --name session-web -d -p 8888:8080 \
session-web:latest
# 方法二
docker run --name session-web -d -p 8888:8080 \
本地目錄的路徑必須是絕對路徑
以前,使用-v引數時如果本地目錄不存在docker會自動為你建立乙個資料夾。
現在,使用--mount引數時如果本地目錄不存在,docker會報錯。docker掛載主機目錄的預設許可權是讀寫,使用者也可以通過增加readonly指定為唯讀。
掛載乙個本地主機檔案作為資料卷
--mount標記也可以從主機掛載單個檔案到容器中
# 方法一
docker run --rm -it \
--mount type=bind,source=#home/.bash_history,target=/root/.bash_history \
ubuntu:17.10 bash
# 方法二
docker run --rm -it \
-v $home/.bash_history:/root/.bash_history \
ubuntu:17.10 bash
主機掛載儲存 docker資料卷(資料掛載)
docker的映象是由多個唯讀的檔案系統疊加在一起形成的。當我們在我啟動乙個容器的時候,docker會載入這些唯讀層並在這些唯讀層的上面 棧頂 增加乙個讀寫層。這時如果修改正在執行的容器中已有的檔案,那麼這個檔案將會從唯讀層複製到讀寫層。該檔案的唯讀版本還在,只是被上面讀寫層的該檔案的副本隱藏。當刪...
Docker資料卷之具名掛載和匿名掛載
1 啟動容器 docker run d p name nginx01 v etc nginx nginx v 容器內路徑 2 檢視所有卷的情況 注 由上圖可以看到,volume name 有的是隨機生成的字串,對於這種就是匿名掛載,因為 v的時候只寫了容器內的路徑看,而沒有寫容器外的路徑 1 啟動容...
(九) Docker 容器資料卷 掛載
一 容器資料卷 docker 容器資料卷是容器在執行過程中持久化資料的一種方式,卷是目錄或檔案,存在於乙個或多個容器中,由docker 掛載到容器,但不屬於聯合檔案系統,因此能夠繞過union file system 提供一些用於持續儲存或共享資料的特性 卷的設計目的就是資料持久化,完全獨立於容器的...