容器数据卷

目录

一、容器数据卷概念

二、使用数据卷

2.1直接使用命令来挂载

三、实战测试

四、具名挂载和匿名挂载

4.1匿名挂载举例:

4.2具名挂载举例:

五、数据卷容器


一、容器数据卷概念

数据?如果数据都在容器中,那么容器删除,数据就是跟着删除丢失。需求:数据持久化

容器之间有一个数据共享技术(卷技术):

1、docker容器中产生的数据,同步到本地(目录的挂载,将容器内的目录挂载到Linux本地目录上)。

2、容器的持久化和同步操作,容器间也是可以实现数据共享。

二、使用数据卷

2.1直接使用命令来挂载

语法:

docker run -it -v 主机目录:docker容器内目录

测试

[root@zhoujunru ~]# docker run -it -v /home/ceshi:/home centos /bin/bash

启动起来时,通过docker inspect  容器ID命令查看容器详细信息想看卷是否挂载成功。

双向绑定:

在容器/home目录下touch新建文件,卷会把数据同步到容器外面宿主机上。

在宿主机上修改文件,容器内数据也会发生同步。

三、实战测试

获取镜像

[root@zhoujunru /]# docker pull mysql:5.7

运行容器,同时做数据卷挂载

[root@zhoujunru /]# docker run -d -p 3316:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/date:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=666666 --name mysql01 mysql:5.7
f49f802bc6ce6202381e923884f9d7e5f9d9078e6174169ea6d8797b4a00eb96

启动成功后,在本地使用SQLyog来测试。SQLyog连接到linux服务器的3316端口,3316端口和mysql容器的3306端口映射,这个时候我们就可以连接上mysql数据库。

在本地测试创建一个数据库,查看一下映射的路径是否OK。

将容器mysql01删除,,发现挂载到本地的数据依旧没有丢失,这就是容器的数据持久化功能。

四、具名挂载和匿名挂载

-v 容器内路径  #匿名挂载

-v卷名:容器内路径  #具名挂载

-v /宿主机路径:容器内路径   #指定路径挂载

4.1匿名挂载举例:

4.2具名挂载举例:

所有docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxx/_date

五、数据卷容器

结论:容器之间配置信息传递,数据卷容器的生命周期一直会持续到灭有容器使用为止。但是一旦持久化到本地,这个时候,本地的数据是不会因为容器删除而删除的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值