什么是容器数据卷?
docker理念回顾:
将应用和环境打包成一个镜像!
如果我们所有的数据都存储在容器中,当我们删除了容器,数据就会丢失 ! 需求:数据持久化
容器之间可以有一个数据共享的技术! docker容器中产生的数据,同步到本地!
就是数据卷技术!实际上就是:目录的挂载,将我们容器内的目录,挂载到Linux上面!!
总结一句话:容器的持久化和同步操作!
如何进行目录挂载
挂载的操作是对于images镜像的,Windows的挂载必须加上盘符
docker run -it -v /c/tomcatMount:/usr/local/temp 24207ccc9cce
使用docker inspect 容器id查看挂载的结果:
当容器内创建新的文件时,在Windows上的目录下就会同步创建
安装挂载 mysql
将mysql的配置文件和data数据挂载出来,注意mysql需要配置密码,使用 -e 环境配置
docker run -d -p 3310:3306 -v /d/home/mysql/conf:/etc/mysql/conf.d -v /d/home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql-01 c20987f18b13
使用navicat测试是否能连接
具名挂载
docker run -d -P --name nginx2 -v juming-nginx:/etc/nginx nginx
-P 随机映射端口
juming-nginx : 前面没有加斜杠,所以表示的是为volume取一个名字
-v 卷名:容器内路径
使用docker volume ls查看
如何区分是具名挂载还是路径挂载
-v 卷名:容器内路径 具名挂载
-v / 宿主机路径:容器内路径 指定路径挂载
拓展
ro: read only 只读
rw : 读写权限
docker run -d -P --name nginx2 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx2 -v juming-nginx:/etc/nginx:rw nginx
多个mysql实现数据共享:
docker run -d -p 3310:3306 - e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
docker run -d -p 3310:3309 - e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7