docker - [10] 容器数据卷
将应用和环境打包成一个镜像,然后发布启动就成为一个容器了。
一、什么是容器数据卷
容器数据卷(Container Data Volumes)是Docker管理的一种特殊类型的存储区域,它为容器提供了一种持久化数据、共享数据以及与宿主机或其他容器之间进行数据交互的有效方式。
如果数据都在容器中,那么容器删除,数据就会丢失!MySQL的容器删除 = 删库 => 跑路
容器之间可以有一个数据共享的技术。
docker容器中产生的数据,同步到本地。这就是卷技术!即容器的目录挂载到Linux上。
二、容器卷的使用
2.1、命令挂载
1.先在虚拟机创建/home/ceshi目录

2.挂载目录,并运行镜像进入容器,在容器内部的/home目录下创建测试文件
# docker run -it -v 主机目录:容器目录
docker run -it -v /home/ceshi:/home centos /bin/bash

3、另外开一个窗口,访问虚拟机的/home/ceshi目录

4、使用docker inspect查看镜像关于Mounts的信息

2.2、具名和匿名挂载
匿名挂载:docker run -d -P --name nginx01 -v /etc/nginx nginx
查看所有的volume的情况:docker colume ls

-v后面只有容器内路径的为匿名挂载
具名挂载:docekr run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx(大多数情况下使用的挂载方式)

所有的docker容器内的卷,没有指定目录的情况下都是在
/var/lib/docker/volumes/xxx/_data
※ 容器卷挂载之后,在虚拟机中也可以观察到变化

※ 挂载时改变读写权限
1、只读(read only)
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
2、可读可写(read write)
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
三、安装mysql
命令挂载的实操:将MySQL的data目录挂载出去
1.拉取镜像

2、挂载并启动mysql镜像

3、进入容器,访问mysql

存疑:容器内系统时间和虚拟机系统时间不一致?
4、将容器删除,本地的数据卷依旧没有丢失,这就实现了容器数据持久化功能!

— 要养成终身学习的习惯 —

        1、什么是容器数据卷?2、容器数据卷的使用
    
                
            
        
浙公网安备 33010602011771号