博主头像
<CodeEra />

心存敬畏 行有所止

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、宿主机目录如果为空,容器目录不为空,此时就会使用容器目录内容清空掉

发表新评论