容器与数据耦合问题
- 不便与修改
当我们已经有一个容器已经在运行中,某天需要修改容器中运行的镜像的某些配置,这时候就需要进入到容器中进行相应的修改,很不方便。 - 数据不可复用
在容器内的修改对外是不可见的。所有修改在创建新的容器时都不可复用。好比容器是一台独立于宿主机的虚拟电脑,你对该电脑进行的一些修改操作只作用于该虚拟电脑,如果把该电脑删除那么里面的数据也就删除了。创建一台新虚拟机那也只是把之前的电脑给恢复出厂设置了 - 升级维护困难
由数据不可复用而造成的升级维护困难。如果想要把旧的容器换成新的容器,由于旧的容器的数据不可复用,你换新的容器是无法使用到旧的容器中的数据的
这时候就引申出一个想法,如果我希望宿主机的部分目录当作容器内的部分目录,容器的一些目录指向相当于软链接的方式最终会指向宿主机。那么我们以上的问题就都能解决了。Docker为我们提供了这些解决技术,那就是数据卷。
数据卷(volume)
数据卷是一个虚拟目录,指向宿主机文件系统的某个目录

image.png
数据卷基础语法
| 命令 | 解释 |
|---|---|
| create | 创建一个数据卷(创建数据卷的默认目录是在/var/lib/docker/volumes/数据卷名称/_data) |
| inspact | 显示一个或多个数据卷信息 |
| ls | 列出所有的数据卷 |
| prune | 删除未使用的数据卷 |
| rm | 删除指定的数据卷 |
实践案例
创建一个数据卷,并查看数据卷在宿主机的目录位置
# 创建数据卷
docker volume create html
# 查看所有数据卷
docker volume ls
# 查看数据卷详细信息
docker volume inspect html