您好,登錄后才能下訂單哦!
容器中數據持久化主要有兩種方式:
數據卷
數據卷是一個可供一個或多個容器使用的特殊目錄,可以繞過UFS(Unix File System)。
注意:數據卷的使用,類似于 Linux 下對目錄或文件進行 mount。
創建數據卷
示例:
docker run --name nginx-data -v /mydir nginx
執行如下命令即可查看容器構造的詳情:
docker inspect 容器ID
由測試可知:
刪除數據卷
數據卷是被設計來持久化數據的,因此,刪除容器并不會刪除數據卷。如果想要在刪除容器時同時刪除數據卷,可使用如下命令:
docker rm -v 容器ID
這樣既可在刪除容器的同時也將數據卷刪除。
掛載宿主機目錄作為數據卷
docker run --name nginx-data2 -v /host-dir:/container-dir nginx
這樣既可將宿主機的/host-dir路徑加載到容器的/container-dir中。
需要注意的是:
宿主機路徑盡量設置絕對路徑——如果使用相對路徑會怎樣?
如果宿主機路徑不存在,Docker會自動創建
TIPS
Dockerfile暫時不支持這種形式。
掛載宿主機文件作為數據卷
docker run --name nginx-data3 -v /文件路徑:/container路徑 nginx
指定權限
默認情況下,掛載的權限是讀寫權限。也可使用:ro 參數指定只讀權限。
示例:
docker run --name nginx-data4 -v /host-dir:/container-dir:ro nginx
這樣,在容器中就只能讀取/container-dir中的文件,而不能修改了。
數據卷容器
如果有數據需要在多個容器之間共享,此時可考慮使用數據卷容器。
創建數據卷容器:
docker run --name nginx-volume -v /data nginx
在其他容器中使用-volumes-from 來掛載nginx-volume容器中的數據卷。
docker run --name v1 --volumes-from nginx-volume nginx docker run --name v2 --volumes-from nginx-volume nginx
這樣:
v1、v2兩個容器即可共享nginx-volume這個容器中的文件。
即使nginx-volume停止,也不會有任何影響。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。