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、将容器删除,本地的数据卷依旧没有丢失,这就实现了容器数据持久化功能!
— 要养成终身学习的习惯 —
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南