什么是容器数据卷
什么是容器数据卷
卷就是目录或者文件,存在于一个或者多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能逃过Union file system 提供的一些持续存储或者共享数据的特性
卷的设计目的就是数据持久化,完全独立于容器的生存周期,因此docker不会在容器删除时删除其挂载的数据卷
将docker容器内的数据保存进宿主机的磁盘中
使用数据卷
方式一:直接使用命令挂载 -v
docker run -it --privileged=true -v 主机目录:容器内目录 镜像名
|
使用命令查看挂载详情,找到Mounts
docker inspect containerID
|
具名和匿名挂载
匿名挂载
-v 容器内路径 docker run -d -P --name nginx01 -v /etc/nginx nginx
|
查看所有挂载目录命令
[root@swcode ~]# docker volume ls DRIVER VOLUME NAME local 85a3880d15ec86f9a8324f2bdc172fa6dc29e1fb2c8095be5634ea2e35bfddc5
|
VOLUME NAME
是一串字符串,即为匿名挂载
具名挂载
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
|
查看所有挂载目录命令
[root@swcode ~]# docker volume ls DRIVER VOLUME NAME local 85a3880d15ec86f9a8324f2bdc172fa6dc29e1fb2c8095be5634ea2e35bfddc5 local juming-nginx
|
juming-nginx
就是卷名,这种就是具名挂载
查看具体目录
[root@swcode ~]# docker volume inspect juming-nginx [ { "CreatedAt": "2023-02-02T17:00:15+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data", "Name": "juming-nginx", "Options": null, "Scope": "local" } ]
|
所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxx/_data
如何确定是具名挂载还是匿名挂载,还是指定路径挂载!
-v 容器内路径 # 匿名挂载 -v 卷名:容器内路径 # 具名挂载 -v /宿主机路径:容器内路径 # 路径挂载
|
拓展
通过ro
和rw
改变读写权限
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
|
数据卷容器
容器数据同步