- 特点:Docker管理宿主机文件系统的一部分 /var/lib/docker/volumes 保存数据的最佳方式
多个运行容器之间共享数据
当容器停止或者被移除后,改卷依然存在
多个容器可以同时挂载相同的卷
当明确删除卷时,卷才会被删除
将容器的数据存储在远程主机或其他存储上
将数据从一台Docker主机迁移到另一台时,先停止容器,然后备份卷目录/var/lib/docker/volumes
- 创建数据卷
#查看当前主机数据卷
docker volume ls
#使用数据卷 可以先创建数据卷 如果不创建直接指定会自动给创建
#创建数据卷
docker volume create nginx_vol
docker volume ls
docker volume inspect nginx_vol
#查看数据卷目录
[root@cetus volumes]# docker volume inspect nginx_vol
[
{
"CreatedAt": "2019-10-05T09:21:40+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/nginx_vol/_data",
"Name": "nginx_vol",
"Options": {},
"Scope": "local"
}
]
#Mountpoint 地址就是数据实际地址
- 创建容器和测试
#创建容器 --mount src指定挂载数据卷 dst网站目录
docker run -d --name nginx1 -p 88:80 --mount src=nginx_vol,dst=/usr/share/nginx/html nginx
#docker run -d --name nginx1 -p 88:80 -v nginx_vol:/usr/share/nginx/html nginx
#查看挂载
docker inspect nginx1 | more
"Mounts": [
{
"Type": "volume",
"Name": "nginx_vol",
"Source": "/var/lib/docker/volumes/nginx_vol/_data",
"Destination": "/usr/share/nginx/html",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
#修改index.html
/var/lib/docker/volumes/nginx_vol/_data
#测试确实文件被修改
http://192.168.10.243:88/
- 清理
#清理
docker stop nginx1
docker rm nginx1
docker volume rm nginx_vol
#清除卷的时候必须先清理使用卷的容器
#清理卷之后 /var/lib/docker/volumes/nginx_vol/_data 目录中文件就没有了