Docker 容器卷是一種強大的功能,可以實現(xiàn)容器之間數(shù)據共享和持久化存儲。本篇博客將介紹 Docker 容器卷的概念、用途和操作步驟,幫助讀者更好地理解和使用容器卷。
一、什么是 Docker 容器卷
- 容器卷是一種 Docker 提供的數(shù)據管理機制,于在容器和宿主機之間共享數(shù)據。
- 容器卷可以提供持久化存儲,即使容器被刪除或重新創(chuàng)建,數(shù)據仍然保留。
二、容器卷的用途
- 容器之間共享數(shù)據:多個容器可以通過容器卷共享數(shù)據,實現(xiàn)不同容器之間的數(shù)據交互。
- 容器與宿主機之間共享數(shù)據:容器卷可以與宿主機文件系統(tǒng)關聯(lián),實現(xiàn)容器內外數(shù)據的共享。
- 數(shù)據持久化存儲通過容器卷,將器中的數(shù)據持久化到宿機上,以防容器故障或刪除而丟失數(shù)據。
三、容器卷相關命令
docker volume create <volume_name> 創(chuàng)建容器卷
docker volume ls 查看容器卷
docker volume inspect <volume_name> 查看容器卷詳情
docker volume rm <volume_name> 刪除容器卷
docker run -v <volume_name>:<container_path> <image_name> 關聯(lián)容器卷
四、Docker 容器卷的操作步驟
- 創(chuàng)建容卷:使用
docker volume create
命令創(chuàng)建一個容器卷,可以指定名稱和選項。 - 啟動器時關聯(lián)卷:在
docker run
命令中,使用 -v 參數(shù)關聯(lián)所創(chuàng)建的容器卷??梢灾付ㄈ萜髦鳈C路徑的映射關系。 - 在容器內使用卷:在容器的應用程序中,可以像操作文件系統(tǒng)一樣使用容器卷,讀取和寫入數(shù)據。
- 管理容器卷:使用 d
ocker volume
命令可以操作容器卷,例如列所有的容器卷、刪除不再使用的卷等操作。
五、演示
1、創(chuàng)建容器卷:
`docker volume create 容器卷名稱`: 創(chuàng)建默認的 Docker 容器卷,存儲在 Docker 管理的卷存儲區(qū)中,具有持久化存儲的特性,適用于容器之間的數(shù)據共享,具有較好的移植性
`docker volume create --opt type=none --opt device=主機地址 --opt o=bind 容器卷名稱`:創(chuàng)建與主機地址關聯(lián)的卷,通過直接關聯(lián)到主機的路徑,實現(xiàn)容器與主機之間的數(shù)據共享,更加靈活但不夠可移植
2、啟動容器時關聯(lián)卷:
`docker run -v 容器卷名:對應容器內路徑 鏡像ID`
`docker run -d -p 8889:6379 -v 容器卷名稱:/bin/container --name my-redis redis:latest` :-d 是后臺運行,-p 是匹配主機和容器端口映射,-v 后面跟容器卷路徑,--name容器重命名,redis:latest鏡像ID和版本
3、在器內寫入數(shù)據:
`docker exec my-redis` : 進入容器
`mkdir /bin/container/a.txt` : 容器中創(chuàng)建一個 a.txt文件
4、啟動另一個容器并關聯(lián)同一個卷:
`docker run -d -p 8890:6380-v 容器卷名稱:/bin/container --name my-redis2 redis:latest` 創(chuàng)建另一個容器,關聯(lián)該容器卷
5、查看數(shù)據同步性
查看本地 容器卷 和 容器中 數(shù)據是否同步
六、總結
1、同一個容器卷可以應用于多個容器,并且數(shù)據共享。
例:創(chuàng)建容器卷C,容器A和容器B分別關聯(lián)了容器卷C,如果容器A在容器卷C中創(chuàng)建了文件,會同步到容器卷C 和 容器 B 中
2、容器被刪除后,容器卷數(shù)據會保留。
例:創(chuàng)建容器卷C,容器A和容器B分別關聯(lián)了容器卷C,后期如果容器A和容器B被刪除,容器卷C還會保留。
3、數(shù)據實時同步
例:創(chuàng)建容器卷C,容器A和容器B分別關聯(lián)了容器卷C,無論是在容器卷C中添加數(shù)據、文件,都會實時同步到容器A和容器B關聯(lián)的路徑匯中,反之亦然。
4、創(chuàng)建容器關聯(lián)容器卷的時候,也可以直接關聯(lián)主機地址。(不建議)
例:docker run -v 主機地址:對應容器內路徑 鏡像ID
優(yōu)缺點分析:
docker volume create
創(chuàng)建 容器卷易于移植性、容器公用
docker run -v 主機地址:對應容器內路徑 鏡像ID
不易于移植性、容器公用文章來源:http://www.zghlxwxcb.cn/news/detail-600950.html
參考
Docker Documentation: Manage data in Docker
Docker Documentation: Use volumes文章來源地址http://www.zghlxwxcb.cn/news/detail-600950.html
到了這里,關于深入理解 Docker 容器卷的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!