卷就是目錄或文件,存在于一個或多個容器中,由 docker 掛載到容器,但不屬于聯合文件系統,因此能夠繞過 UnionFS,提供一些用于持續存儲或共享數據。
特性:卷設計的目的就是數據的持久化,完全獨立于容器的生存周期,因此 Docker 不會在容器刪除時刪除其掛載的數據卷。
特點:
- 數據卷可以在容器之間共享或重用數據
- 卷中的更改可以直接實施生效
- 數據卷中的更改不會包含在鏡像的更新中
- 數據卷的生命周期一直持續到沒有容器使用它為止
運行一個帶有容器卷存儲功能的容器實例:
docker run -it --privileged=true -v 宿主機絕對路徑目錄:容器內目錄[rw | ro] 鏡像名
可以使用docker inspect
查看容器綁定的數據卷,“Mounts”字段中。
權限:
rw
:讀寫ro
:只讀。如果宿主機寫入內容,可以同步給容器內,容器內可以讀取,但不可寫。
容器卷的繼承:
# 啟動一個容器
docker run -it --privileged=true /tmp/test:/tmp/docker --name u1 ubuntu /bin/bash# 使用 --volumes-from 繼承 u1的容器卷映射配置
docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu