1.容器数据卷
如果数据都在容器内,一旦容器被删除,数据则会全部丢失。容器数据卷技术可以将容器产生的数据“存储”在宿主机上。
数据卷的设计目的在于数据的持久化,完全独立于容器的生命周期,因此,docker不会在容器删除时删除其挂载的容器卷,也不会存在类似垃圾收集机制,对容器引用的容器卷进行处理。
2.如何使用
//方式1:使用 -v命令
docker run -it -v [主机目录:容器内目录]
3.匿名挂载
docker run -d -P --name nginx01 -v /etc/nginx #-v 只指定了容器内目录,没有指定宿主机目录
docker volume ls #查看所有volume挂载情况
4.具名挂载
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx #具名挂载 -v 卷名:容器内目录 docker volume inspect juming-nginx
#输出
[
{
"CreatedAt":"2021-07-26T15:45:01+08:00",
"Driver":"local",
"Labels":null,
"Mountpoint":"/var/lib/docker/volumes/juming-nginx/_data",
"Name":"juming-nginx",
"Options":null,
"Scope":"local"
}
]
#备注
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
ro,rw代表读写权限
ro readonly 一旦指定为ro,文件只能在宿主机侧修改,在容器内无法进行修改
rw readwrite
总结:
容器卷作用:
1)容器产生数据的持久化和同步2)容器间数据共享
容器卷挂载类型
-v [容器路径] #匿名挂载
-v [卷名:容器内路径] #具名挂载
-v [/宿主机路径:容器内路径] #指定路径挂载
注意事项:
1.数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中
2.数据卷可以在容器之间共享和重用
3.可以对数据卷里的内容直接修改
4.数据卷的变化不会影响镜像的更新
5.卷会一直存在,即使挂载的容器已经被删除。