来自b站up主:遇见狂神说 --docker最新超详细版教程通俗易懂https://www.bilibili.com/video/BV1og4y1q7M4?p=2
Docker数据卷的使用
一、什么是数据卷
1.如果数据都在容器中,那么删除一个容器,数据就会丢失,要实现容器之间有一个数据共享技术,docker产生的数据同步到本地,就是卷技术。
2.卷就是目录或文件,存在于一个或多个容器中,由Docker挂载到容器,但卷不属于联合文件系统(Union FileSystem),因此能够绕过联合文件系统提供一些用于持续存储或共享数据的特性:。
3.卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。
4.数据卷的特点:
- 数据卷可在容器之间共享或重用数据
- 卷中的更改可以直接生效
- 数据卷中的更改不会包含在镜像的更新中
- 数据卷的生命周期一直持续到没有容器使用它为止
二、使用数据卷
1.使用命令挂载
docker run -it -v 主机目录,容器内目录
将主机目录/home/test和容器/home建立数据卷,首先在容器目录下创建test.java文件,再去主机目录下查看是否有该文件
使用inspect查看容器详情,可以查看到容器具体的卷是怎么挂载的,bind是一个双向绑定的关系,容器内外的数据都会自动同步
docker inspect 容器id
实战:同步mysql数据
启动mysql时,要设置密码,具体可以看官方文档
docker pull mysql:5.7
docker run -d -p 6603:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql: