Docker之 資料持久化
容器中資料持久化主要有兩種方式:
-
資料卷(Data Volumes)
-
資料卷容器(Data Volumes Dontainers)
資料卷
資料卷是一個可供一個或多個容器使用的特殊目錄,可以繞過UFS(Unix File System)。
-
資料卷可以在容器之間共享和重用
-
對資料卷的修改會立馬生效
-
對資料卷的更新,不會影響映象
-
資料卷預設會一直存在,即使容器被刪除
-
一個容器可以掛載多個資料卷
注意:資料卷的使用,類似於 Linux 下對目錄或檔案進行 mount。
建立資料卷
示例:
1
|
docker run --name nginx-data -
v
/mydir
nginx
|
執行如下命令即可檢視容器構造的詳情:
1
|
docker inspect 容器ID
|
由測試可知:
-
Docker會自動生成一個目錄作為掛載的目錄。
-
即使容器被刪除,宿主機中的目錄也不會被刪除。
刪除資料卷
資料卷是被設計來持久化資料的,因此,刪除容器並不會刪除資料卷。如果想要在刪除容器時同時刪除資料卷,可使用如下命令:
1
|
docker
rm
-
v
容器ID
|
這樣既可在刪除容器的同時也將資料卷刪除。
掛載宿主機目錄作為資料卷
1
|
docker run --name nginx-data2 -
v
/host-dir
:
/container-dir
nginx
|
這樣既可將宿主機的/host-dir路徑載入到容器的/container-dir中。
需要注意的是:
宿主機路徑儘量設定絕對路徑——如果使用相對路徑會怎樣?
-
測試給答案
如果宿主機路徑不存在,Docker會自動建立
TIPS
Dockerfile暫時不支援這種形式。
掛載宿主機檔案作為資料卷
1
|
docker run --name nginx-data3 -
v
/檔案路徑:
/container
路徑 nginx
|
指定許可權
預設情況下,掛載的許可權是讀寫許可權。也可使用:ro 引數指定只讀許可權。
示例:
1
|
docker run --name nginx-data4 -
v
/host-dir
:
/container-dir
:ro nginx
|
這樣,在容器中就只能讀取/container-dir中的檔案,而不能修改了。
資料卷容器
如果有資料需要在多個容器之間共享,此時可考慮使用資料卷容器。
建立資料卷容器:
1
|
docker run --name nginx-volume -
v
/data
nginx
|
在其他容器中使用-volumes-from 來掛載nginx-volume容器中的資料卷。
1
2
|
docker run --name v1 --volumes-from nginx-volume nginx
docker run --name v2 --volumes-from nginx-volume nginx
|
這樣:
v1、v2兩個容器即可共享nginx-volume這個容器中的檔案。
即使nginx-volume停止,也不會有任何影響。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2284908/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Docker資料持久化Docker持久化
- Docker --volume-資料持久化Docker持久化
- Docker最全教程——資料庫容器化之持久儲存資料(十一)Docker資料庫
- Docker系列教程14-Docker資料持久化Docker持久化
- rabbitmq 如何在 docker 下做資料持久化?MQDocker持久化
- Docker 持久化Docker持久化
- 1.05 docker的持久化儲存和資料共享Docker持久化
- Docker的持久化儲存和資料共享(四)Docker持久化
- Redis資料持久化—RDB持久化與AOF持久化Redis持久化
- fabric資料持久化持久化
- Redis 資料持久化Redis持久化
- 基於Docker部署Oracle、MySQL等資料庫的資料檔案持久化DockerOracleMySql資料庫持久化
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫
- 【Unity】資料持久化PlayerPrefsUnity持久化
- Redis的資料持久化Redis持久化
- Docker下Nacos持久化配置Docker持久化
- 資料的序列化&持久化持久化
- redis 之 持久化Redis持久化
- iOS資料持久化設計iOS持久化
- 鴻蒙資料持久化sqlite鴻蒙持久化SQLite
- 可持久化資料結構持久化資料結構
- 詳解 ZooKeeper 資料持久化持久化
- Unity學習筆記--資料持久化之PlayerPrefs的使用Unity筆記持久化
- Redis穩定性之戰:AOF日誌支撐資料持久化Redis持久化
- 可持久化資料結構1持久化資料結構
- iOS資料持久化儲存-CoreDataiOS持久化
- Milvus 2.0 資料插入與持久化持久化
- Kubernetes 持久化資料儲存 StorageClass持久化
- Redis 持久化之 AOFRedis持久化
- HarmonyOS資料管理與應用資料持久化(一)持久化
- K8S學習筆記之Kubernetes資料持久化方案K8S筆記持久化
- 鴻蒙首選項資料持久化鴻蒙持久化
- redis原始碼分析(五):資料持久化Redis原始碼持久化
- redis之 Redis持久化配置Redis持久化
- Redis持久化之RDB & AOFRedis持久化
- 畫江湖之 Redis持久化Redis持久化
- Docker下redis的主從、持久化配置DockerRedis持久化
- Docker容器中資料兩種持久化儲存方式:卷和掛載宿主目錄Docker持久化