最近一個項目要使用Data Volume,這裏簡單記錄一下。python
數據卷能夠用來存儲Docker應用的數據,也能夠用來在Docker容器間進行數據共享。數據卷呈現給Docker容器的形式就是一個目錄,支持多個容器間共享,修改也不會影響鏡像。web
特性:docker
數據卷能夠在容器之間共享和重用app
對數據卷的修改會馬上生效webapp
對數據卷的更新,不會影響鏡像code
數據卷默認會一直存在,即便容器被刪除get
一、建立一個數據卷io
docker volume create vol1容器
查看全部的數據卷數據
docker volume ls
在主機裏使用以下命令能夠查看指定的數據卷信息
docker volume inspect vol1
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/vol1/_data",
"Name": "vol1",
"Options": {},
"Scope": "local"
}
]
二、使用數據卷
(1)使用「-v 容器內目錄」方式
docker run -d -P --name web -v /webapp training/webapp python app.py
此方式docker 會將本地一個 _data 目錄 mount 爲容器內的 webapp 目錄,可是,在web容器被刪除後,宿主機上的 _data 的目錄及其中的內容雖然會保留下來,新啓動的容器卻沒法再使用這個目錄,也就是說,已有的數據不能自動地被重複使用了。
(2)使用 -v 來掛載一個主機上的目錄/文件到容器的目錄/文件
docker run -d -p 23333:80 -v vol1:/store training/webapp python app.py 或者使用 --mount source=vol1, target=/store
將建立的數據卷 vol1 掛在到容器的 /store 目錄,能夠理解爲目錄映射,這樣能夠讓全部的容器共享宿主機數據,從而只須要改變宿主機的數據源就可以影響到全部的容器數據。並且,從新啓動容器時,能夠再次使用一樣的方式將 vol1 的目錄掛在到新的容器內, 這樣就能夠實現數據持久化的目的。
三、刪除數據卷
docker volume rm vol1