docker数据卷操作
4.1 数据卷概述
思考问题:在Redis容器中存储的数据,如果Redis容器被删除了,数据是否还存在?
解决方案:将数据存储到Linux宿主机的磁盘目录中
数据卷概述:数据卷是docker所提供的一个虚拟目录,这个虚拟目录会对应宿主机的一个真实目录。在创建容器的时候就可以将这个数据卷挂载到容
器中的某一个目录下,那么此时在该目录下所产生的数据就会存储到宿主机的目录下,实现了容器和宿主机之间的文件共享。
4.2 常见命令
4.2.1 查看数据卷
命令如下所示:
docker volume ls
4.2.2 创建数据卷
命令如下所示:
docker volume create 数据卷名称
4.2.3 查询数据卷详情
命令如下所示:
docker volume inspect 数据卷名称
4.2.4 删除数据卷
命令如下所示:
docker volume rm 数据卷名称 # 删除指定的数据卷
docker volume prune # 删除未使用的数据卷
4.3 数据卷挂载
数据卷创建好了以后,在创建容器的时候就可以通过-v参数,将创建好的数据卷挂载到容器中的某一个目录下。
命令如下所示:
格式: -v 数据卷名称:容器目录
示例:docker run -d --name redis02 -p 6380:6379 -v redis-data:/data redis:7.0.10
注意事项:
1、如果数据卷没有提前创建好,那么在创建容器的时候会自动创建对应的数据卷
2、数据卷挂载的时候数据卷名称前面没有/
3、容器目录不存在会自动创建
4、数据卷目录如果不为空,此时会使用数据卷目录内容覆盖容器目录内容
5、数据卷目录如果为空,容器目录不为空,此时就会使用容器目录内容覆盖数据卷目录
4.4 目录挂载
通过-v参数也可以将宿主机上的某一个目录挂载到容器中的某一个目录下。
命令如下所示:
格式: -v 宿主机目录:容器目录
示例:docker run -d --name redis03 -p 6381:6379 -v /redis-data:/data redis:7.0.10
注意事项:
1、如果宿主机目录没有提前创建好,那么在创建容器的时候会自动创建对应的宿主机目录
2、宿主机目录挂载的时候宿主机目录名称前面有/
3、容器目录不存在会自动创建
4、宿主机目录如果不为空,此时会使用宿主机目录内容覆盖容器目录内容
5、宿主机目录如果为空,容器目录不为空,此时就会使用容器目录内容清空掉