数据?如果数据都在容器中,你们我们容器删除,数据就会丢失!(需求:数据可以持久化)
容器之间可以有一个数据共享的技术!docker容器中产生的数据,同步到本地!
这就是卷技术!目录挂载,将我们容器内的目录,挂载到Linux上面!
总结一句话,容器的持久化和同步操作!容器也是可以数据共享的
#方式一:直接使用命令来挂载 -vdocker run -it -v /home/ceshi:/home centos /bin/bash#这样就将本地的/home/ceshi文件目录映射到了容器中的/home目录下从而达到数据共享
具名和匿名挂载
#匿名挂载-v 容器内路径!docker run -d -P --name nginx01 -v /etc/nginx nginx#查看所有 volume(卷)的情况docker volume ls[root@iZbp10cl07degikl645xkmZ ~]# docker volume lsDRIVER VOLUME NAMElocal 0d60d42667bb0ec6c714eb727bdad78622cde89145eabbee5e6f96d982f8edaf#这里发现,这种就是匿名挂载,我们-v只写了容器内的路径,没有写容器外的路径!#具名挂载[root@iZbp10cl07degikl645xkmZ ~]# docker run -d -P --name nginx02 -v juming:/etc/nginx nginx1a353011db9cb0abed3bfb85d4dd8fa4edc4fbc32bd3399d4d937f6dfe925105[root@iZbp10cl07degikl645xkmZ ~]# docker volume lslocal faa560fb675fea2638d16ffc4e4a55ede58834744fd98f9a8ff94819aef3c34clocal juming#通过-v 卷名:容器内路径#查看一下这个卷[root@iZbp10cl07degikl645xkmZ ~]# docker volume inspect juming[{"CreatedAt": "2020-11-25T19:50:08+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/juming/_data", //具体本地的地址"Name": "juming","Options": null,"Scope": "local"}][root@iZbp10cl07degikl645xkmZ ~]#
总结:我们通过具名挂载可以方便的找到我们的一个卷,大多数情况在使用的** 具名挂载 **
///
#如何确定具名挂载还是匿名挂载,还是指定路径挂载!-v 容器内路径 #匿名挂载-v 卷名:容器内路径 #具名挂载-v /宿主机路径:容器路径 #指定路径挂载
拓展:
# 通过 -v 容器内路径, ro rw 改变读写权限ro readonly # 只读rw readwrite # 可读可写# 一旦这个设置了容器权限,容器对我们挂载出来的内容就有了限定!docker run -d -P --name nginx02 -v juming:/etc/nginx:ro nginx # 这样的话只能从juming所映射的路径去改写而不能在容器中去改写docker run -d -P --name nginx02 -v juming:/etc/nginx:rw nginx # 既可以从juming映射的那个路径改写也可以在容器中改写看到ro的话说明只能通过宿主机来改写而不能在容器中改写
