Docker 資料卷管理

2022-07-19 05:00:14 字數 2625 閱讀 6299

資料卷介紹

宿主機無法直接訪問容器中的檔案

容器中的檔案沒有持久化,導致容器刪除後,檔案資料也隨之消失

容器之間無法直接訪問相互的檔案

為解決這些問題,docker加入了資料卷(volumes)機制,能很好解決上面問題,以實現:

容器與主機之間,容器與容器之間共享檔案

容器中的資料持久化

將容器中的資料備份,遷移,恢復等

資料卷特點

資料卷存在宿主機的檔案系統中,獨立於容器,和容器的生命週期是分離的。

資料卷可以目錄也可以是檔案,容器可以利用資料卷與宿主機進行資料共享,實現了容器間的資料共享和交換

容器啟動初始化時,如果容器使用的映象包含了資料,這些資料會拷貝到資料卷中

容器對資料卷的修改是實時進行的

資料卷的變化不會影響映象的更新。資料卷是獨立於聯合檔案系統,映象是基於聯合檔案系統。映象與資料卷之間不會有相互影響

資料卷的掛載方式(三種)

bind mounts:將宿主機上的乙個檔案或目錄被掛載到容器上

volumes:由docker建立和管理。使用docker volume命令管理

tmpfs mounts:tmpfs 是一種基於記憶體的臨時檔案系統。tmpfs mounts 資料不會儲存在磁碟上

bind mounts掛載

利用docker run/create d的引數為容器進行掛載資料卷

用法:方式一

:  -v, --volume list  

-v 宿主機檔案路徑:容器中的檔案路徑

方式二:  

--mount  

--mount type=bind, src=

宿主機路徑

, dst=

容器路徑

注意:  

src指定的檔案或者路徑必須存在

volumes掛載

利用docker run/create為容器掛載資料卷

用法:方式一:

-v, --volume

引數-v volume-name:

容器中的檔案或者資料夾路徑

方式二:

--mount 

引數--mount type=volume, src=volume-name, dst=

容器中的檔案或者資料夾路徑

volume

物件管理:

docker volume 

命令管理

volume

資料卷物件

docker volume create        

建立資料卷物件

docker volume inspect       

檢視資料卷詳細資訊

docker volume ls            

檢視已建立的資料卷物件

docker volume prune     

刪除未被使用的資料卷物件

docker volume rm        

刪除乙個或多個資料卷物件

tmpfs mount掛載

利用docker run/create為容器掛載資料卷

用法:--mount type=tmpfs, dst=path

共享其他容器的資料卷

利用docker run/create 的--volumes-from引數指定資料卷容器

用法:docker run/create --volumes-from container  

資料卷使用注意項

如果掛載乙個空的資料捲到容器中的乙個非空目錄中,那麼這個目錄下的檔案會被複製到資料卷中。

如果掛載乙個非空的資料捲到容器中的乙個目錄中,那麼容器中的目錄中會顯示資料卷中的資料。如果原來容器中的目錄中有資料,那麼這些原始資料會被隱藏掉。

這兩個規則都非常重要,靈活利用第乙個規則可以幫助我們初始化資料卷中的內容。掌握第二個規則可以保證掛載資料卷後的資料總是你期望的結果。

Docker 資料卷管理

建立資料卷 管理資料卷許可權 1.docker run v hostdir guestdir privileges2.卷共享應用,配置,資料等 掛載宿主機檔案 使用資料卷容器共享資料 1.建立資料卷容器 docker create v shiyanloudata name shiyanloudb u...

Docker容器資料管理(資料卷 資料卷容器)

在docker容器的實際使用中,經常會遇到容器的資料持久化,容器之間的資料共享等問題,通常我們有兩種解決方案 1 資料卷 data volumes 就是將容器內資料直接對映到本地主機環境的指定檔案目錄之中,可以理解為容器掛載乙個虛擬資料卷然後 對映到乙個主機目錄中 2 資料卷容器 data volu...

Docker資料管理 Volumes資料卷管理

4 刪除資料卷 2.啟動容器並載入資料卷 1 檢視本機容器和資料卷 docker ps a 檢視本地docker機器上的容器 docker volume ls 檢視本地docker機器上的資料卷 從上圖中可以看出,目前本地docker主機上沒有任何容器和資料卷。為了避免後續示例演示的干擾,如果機器上...