数据卷基本操作
数据卷定义
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录文件。
图解
操作命令语法
docker volume [COMMAND]
docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:
- create 创建一个volume
- inspect 显示一个或多个volume的信息
- ls 列出所有的volume
- prune 删除未使用的volume
- rm 删除一个或多个指定的volume
数据卷挂载
我们在创建容器时,可以通过-v参数来挂载一个数据卷到某个容器目录(以MySQL8为例)
docker run \
--name mysql8 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /tmp/mysql/data:/var/lib/mysql \
-d mysql:latest
解释:
在使用docker安装MySQL之前,为了防止数据安全性,可以将docker中数据库的数据挂载到宿主机上。
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf:指的是把/tmp/mysql/conf/hmy.cnf数据卷挂载到容器内的/etc/mysql/conf.d/hmy.cnf文件上,-v /tmp/mysql/data:/var/lib/mysql同理。
-e MYSQL_ROOT_PASSWORD=123456:指的是MySQL的root用户密码。
数据卷管理
- docker run的命令中通过-v参数挂载文件或目录到容器中:
1:-v volume名称:容器内目录
2:-v 宿主机文件:容器内文件
3:-v 宿主机目录:容器内目录 - 数据卷挂载与目录直接挂载对比:
1:数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找。
2:目录挂载耦合度高,需要我们自己管理目录,不过目录容易寻找查看。