您好,登錄后才能下訂單哦!
如果你有一些需要持續更新的數據并且希望持久化數據,或者需要在不同的容器之間共享數據,再者需要主機與容器之間共享數據,那么你可以使用數據卷來滿足這些需求。
數據卷是一個可供一個或多個容器使用的特殊目錄,它繞過 UFS
,可以提供很多有用的特性:
數據卷可以在容器之間共享和重用。
對數據卷的修改會立馬生效。
數據卷默認會一直存在,即使容器被刪除。
數據卷有兩種創建方式一是創建容器時創建數據卷,二是先創建好數據卷,在創建容器時掛載這個數據卷,兩種方式均可以。
docker volume create demo-data
demo-data
docker run --name demo1 -d \
-v demo-data:/var/www/html nginx:alpine
docker run --name demo2 -d \
-v demo-data:/var/www/html nginx:alpine
docker volume ls
DRIVER VOLUME NAME
local demo-data
docker volume inspect demo-data
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/demo-data/_data",
"Name": "demo-data",
"Options": {},
"Scope": "local"
}
]
docker volume rm demo-data
Error response from daemon: remove demo-data: volume is in use - [#省略..]
注意: 由于有容器正在使用數據卷,提示無法刪除數據卷。
hostname > /var/lib/docker/volumes/demo-data/_data/hosts.txt
注意: 這個目錄對應創建的 demo-data 數據卷。
docker exec -ti demo1 sh -c 'hostname >> /var/www/html/hosts.txt'
docker exec -ti demo2 sh -c 'hostname >> /var/www/html/hosts.txt'
cat /var/lib/docker/volumes/demo-data/_data/hosts.txt
node0
87c60cbe6147
a6bc3c00c790
docker stop demo1
docker stop demo2
docker rm demo1
docker rm demo2
數據卷仍然存在
docker volume ls
DRIVER VOLUME NAME
local demo-data
如果需要可以使用 rm 選項刪除數據卷
docker volume rm demo-data
數據卷已不存在
docker volume inspect demo-data
[]
Error: No such volume: demo-data
創建容器時掛載數據卷參數
docker run --help | grep '\-v,'
-v, --volume list Bind mount a volume
刪除容器時一并刪除數據卷參數(慎用)
docker rm --help | grep '\-v'
-v, --volumes Remove the volumes associated with the container
數據卷管理命令
docker volume --help
Usage: docker volume COMMAND
Manage volumes
Commands:
create Create a volume
inspect Display detailed information on one or more volumes
ls List volumes
prune Remove all unused local volumes
rm Remove one or more volumes
最后來總結下文章中的知識點
docker rm -v
這個命令。參考文章
doker&k8s Qun [703906133]
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。