Docker容器目录挂载详解:数据卷挂载与直接挂载对比及MySQL案例
创作时间:
作者:
@小白创作中心
Docker容器目录挂载详解:数据卷挂载与直接挂载对比及MySQL案例
引用
CSDN
1.
https://m.blog.csdn.net/qq_39921135/article/details/144000306
在使用Docker时,我们常常需要将容器内的目录挂载到宿主机上,以便于数据的持久化存储和管理。本文将详细介绍Docker容器目录挂载的两种方式:数据卷挂载和直接挂载,并通过一个MySQL容器挂载的案例,帮助读者更好地理解这一过程。
一、数据卷挂载的方式对比
容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。两种方式的关联关系如下:
- 带数据卷模式:宿主机目录 --> 数据卷 --> 容器内目录
- 直接挂载模式:宿主机目录 --> 容器内目录
数据卷挂载方式对比
当我们使用数据卷时:
优点:数据卷挂载耦合度低,由Docker来管理目录。Docker会自动创建数据卷对应的目录,这样数据卷就指向了这个目录。而Docker挂载时,只需要挂载到卷上就可以了,它不需要关心你这个目录在哪里,这种方式就相当于全部交给Docker去处理了,我们不用去操心。
劣势:目录较深,不好找。这个目录不是我们创建的,目录结构也比较深,找比较麻烦。
当我们使用目录挂载时:
优点:目录容易寻找查看。我们知道我们创建的目录在哪,将来也没有人帮我们做代理,我们直接挂上去就行了,因此将来我们想要快速的定位到这个文件,一目了然就知道了。
劣势:目录挂载耦合度高,需要我们自己管理目录,并且创建的时候麻烦。
二、语法
目录挂载与数据卷挂载的语法是类似的:
-v 宿主机目录:容器内目录-v 宿主机文件:容器内文件(此时宿主机里的内容会直接覆盖容器内的内容)
三、案例:给MySQL挂载本地目录
1. 需求
需求:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器。
实现思路:
- 在将课前资料中的mysql.tar文件上传到虚拟机,通过load命令加载为镜像。因为mysql镜像相对来讲比较大,如果自己去下载,耗时比较久,因此直接使用load命令导入镜像即可。
- 创建目录
/tmp/mysql/data - 创建目录
/tmp/mysql/conf,将课前资料提供的hmy.cnf文件上传到/tmp/mysql/conf。因为将来我们要做目录挂载,而数据库里面值得挂载的就这么两个东西:
- 数据储存
- 配置文件,用我们的配置文件覆盖容器内的配置文件
- 去DockerHub查阅运行命令,创建并运行MySQL容器,要求:
- 挂载
/tmp/mysql/data到mysql容器内数据存储目录 - 挂载
/tmp/mysql/conf/hmy.cnf文件到mysql容器的配置文件 - 设置MySQL密码
2. 代码实现
数据存储目录和容器的配置文件都可以到官方文档中找到,这个配置文件不建议大家去覆盖它,因为它里面有很多东西,我们写的只是简化的配置,因此我们不覆盖它,我们看一看就这个文件里面包含了两个目录:
.d结尾的是一个目录(directory)的意思,这个的意思就是:在my.cnf配置文件里,它包含了这两个目录,因此放到这两个目录里的一切文件最后都会被加载到my.cnf一起去,作为合并配置。所以官方默认配置我们不管,我们只需要将我们的配置传进来做个合并就行了。所以我们不是放到/etc/mysq/my.cnf下,而是放到/etc/mysql/conf.d目录下。
数据存储的文件在:
官方命令并不全,缺了端口映射和数据卷的挂载
docker run \
--name mysql \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \ # 环境变量,MYSQL_ROOT_PASSWORD:MYSQL_ROOT的密码,这个环境变量可以让我们直接搞定密码
-p 3306:3306 \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf- \
-v /tmp/mysql/data:/var/lib/mysql \
-d \
mysq1:5.7.25
此时容器就成功被创建出来了,并且查看data目录,刷新后可以看见,所有mysql数据都记录到data目录下了。
测试这个mysql是否真的ok:打开mysql的客户端,尝试建立连接。
热门推荐
刹车故障灯亮应如何进行排查和处理?处理过程中需要注意哪些安全事项?
汽车保养全攻略:小保养与大保养项目及周期详解
厦门二日游:鼓浪屿、环岛路、厦大必打卡!
成都冲刺国际美食之都:川菜品牌的崛起之路
十几万的车,真的有必要花钱加装L2级辅助驾驶功能吗?
2024中国自动驾驶智慧交通新趋势:技术、应用与挑战并存
湖南省森林植物园:国家4A级景区,动植物资源丰富
海南三亚鹿回头旅游全攻略:必去景点、美食推荐与住宿指南
六部大片“各显神通”,春节档票房纪录会被刷新吗?
鼓浪屿打卡攻略:从历史建筑到特色美食的完美体验
鼓浪屿新玩法:不止于网红打卡点
鼓浪屿和环岛路:厦门最美自然景观深度游
跟着厦门导游小安拍出鼓浪屿最美瞬间
鼓浪屿vs厦大:厦门两大景点深度对比,哪个更值得去?
春节打卡厦门三大历史文化遗迹:鼓浪屿、南普陀寺、胡里山炮台
婴儿0-12个月尿不湿对照表分享,各阶段用量及尺寸不同
肖战版郭靖剧照引爆网络:7个月雕琢,争议与期待并存
肖战版郭靖引热议,《射雕英雄传》票房能否逆袭?
冬季补钙补镁,告别失眠困扰
张雯丽医生详解:失眠认知疗法如何帮助你重获优质睡眠?
李启芳:用创新疗法破解失眠难题
周末带娃打卡天津蓟州:从盘山到独乐寺
跟着小安游厦门:冬季最佳休闲攻略
胡里山炮台:厦门的百年守望者
狗狗悲伤的5大信号,读懂它们的心,温暖它们的世界!
羊角蜜甜瓜种植方法和管理
打卡三坊七巷林则徐纪念馆:一场穿越时空的爱国之旅
福州最美摄影点大揭秘:从西湖到马尾
撒贝宁推荐:高汤莆田卤面的独特魅力
跟可可美厨学做地道高汤莆田卤面