什么是容器数据卷?
数据都是在容器中,容器删除数据丢失,需求:数据持久化
mysql 容器删除了,相当于删库,mysql 的数据可以存储在宿主机
容器之间有个数据共享技术,docker 容器的数据同步到宿主机
使用数据卷
#1、使用-v 挂载 /home/ceshi 宿主机地址 /home 容器地址
docker run -it -v /home/ceshi:/home centos /bin/bash
#2、查看详细信息
docker inspect 容器id
#3、进入容器,创建文件
touch c#.txt
#4、 进入宿主机/home/ceshi
cd /home/ceshi
#5、查看新建的文件是否在宿主机中存在
ls
1、停止容器
2、修改宿主机文件
3、重新启动容器
4、查看文件是否同步
数据卷好处:我们以后只需要在宿主机上修改就好了,不需要进入容器
具名挂载,匿名挂载
#匿名挂载 -v 容器内路径 只写了容器内的路径没有写宿主机路径
docker run -d -P --name nginx01 -v /etc/nginx nginx
#具名挂载 felicia-nginx 卷名
docker run -d -P --name nginx02 -v felicia-nginx:/etc/nginx nginx
#查看卷的详细信息
docker volume inspect 卷名
#所有docker容器内的卷,没有指定目录的情况下都是在,/var/lib/docker/volumes/卷名/_data
#查看所有数据卷
docker volume ls
如何区分是具名挂载还是匿名挂载还是指定路径挂载
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径:容器内路径 #指定路径挂载
拓展
#通过 -v 容器内路径 ro,rw 改变读写权限
#ro readonly 只读 只能从宿主机改变,容器内部无法操作
#rw readwrite 可写可读
docker run -d -P --name nginx02 -v felicia-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v felicia-nginx:/etc/nginx:rw nginx