docker數據卷掛載筆記
我們的服務運行時必不可少的會產生一些日志,或是我們需要把容器內的數據進行備份,甚至多個容器之間進行數據共享,這必然涉及容器的數據管理操作。
容器中管理數據主要有兩種方式: **1. 數據卷 ** 2. 數據卷容器
1. 數據卷
數據卷是一個可供容器使用的特殊目錄,它繞過文件系統,可以提供很多有用的特性:
- 數據卷可以在容器之間共享和重用
- 對數據卷的修改會立馬生效
- 對數據卷的更新,不會影響鏡像
- 卷會一直存在,直到沒有容器使用
2. 數據卷的創建,查看,刪除
docker run --name testweb -d -p 92:80 -v testwebvloume:/usr/share/nginx/html/ nginx:v3
#利用nginx:v3鏡像創建了一個名為testweb的容器,對外暴露的端口號是92,將/usr/share/nginx/html目錄與數據卷testwebvloume 映射。
docker volume create volume_name #表示創建一個數據卷。
docker volume ls #列出數據卷列表
docker volume rm volume_name #刪除指定數據卷
docker volume inspect volume_name #查看數據卷的詳細信息
例如:docker volume inspect testwebvloume
[
{
"CreatedAt": "2019-07-26T11:55:06+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/testwebvloume/_data",#表示數據卷的掛載點也就是掛載位置
"Name": "testwebvloume",
"Options": null,
"Scope": "local"
}
]
#使用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
3. 數據卷容器
如果用戶需要在容器之間共享一些持續更新的數據,最簡單的方式是使用數據卷容器,數據卷容器其實是一個普通的容器,專門用來提供數據卷供其它容器掛載。
docker run -v commmon:/usr/share/nginx/html/ --name commvolume nginx:v3
#創建一個名為commvolume的容器,他的數據目錄掛載到common中
docker run -d -p 99:80 --name commweb --volumes-from commvolume nginx:v3
#創建一個容器名為commweb,它的數據卷來自於commvolume 容器。