Docker数据卷的作用
- 将数据与容器分离,解耦合,方便操作容器内的数据,保证数据安全
- 解决数据与容器耦合的问题所带来的问题
使用数据卷后可以解决以下的这些问题
- 不便于修改 (当我们要修改Nginx的html内容时,需要进入容器内部修改,很不方便。)
- 数据不可复用(数据不可复用在容器内的修改对外是不可见的,并且所有对容器的修改不可复用)
- 升级维护困难(数据在容器内,如果要升级容器必然删除旧容器,所有数据都跟着删除了)
数据卷的逻辑示意图
数据卷操作命令
创建一个新的数据卷docker volume create [数据卷名称]
查看所有数据卷 docker volume ls
查看数据卷的详细信息 docker volume inspect [数据卷名称]
删除指定的数据卷 docker volume rm [数据卷名称]
删除没有人使用过的数据卷 docker volume prune
Docker数据卷的挂载
我们在创建容器时,可以通过-v 参数来挂载一个数据卷到某个容器目录
这样我们可以在宿主机上面修改docker容器中的数据
docker run --name mn -v html:/usr/share/nginx/html -p 8080:80 nginx
挂载数据和挂载目录
docker run 的命令中通过 -v参数挂载文件或者目录到容器中:
-v volume名称:容器内目录
-v 宿主机文件:容器内文件
数据卷挂载与目录直接挂载的区别
数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找
目录挂载耦合度高,需要我们自己管理目录,不过目录容易查看