数据卷的概念
数据卷其实就是容器宿主机中的一个目录或文件,其作用就是实现容器和宿主机的数据同步互通。
【案例1】容器数据的持久化
当某个容器出现故障,想删掉该容器再重新建一个容器,但是又不想删掉容器中的数据,怎么办?
这时使用数据卷,就可以解决这个问题。即使容器被删除,宿主机的数据卷中还保存着之前容器的数据,创建新的容器的时候,只需和数据卷挂载起来,旧容器的数据就可以加载到新建的容器里。
【案例2】外部机器和容器间接通信
Docker容器和外部机器,如何实现数据交互?
先把数据传入到宿主机,然后再把数据放到数据卷中,数据卷中的数据便会同步到容器中。
【案例3】容器间的数据交换
多个Docker容器之间如何实现数据交互?
只要多个容器都挂载同一份数据卷,即可实现容器间的数据互通。
配置数据卷
创建启动容器时,使用-v设置数据卷
docker run ... -v [宿主机目录(文件)路径]:[容器目录(文件)路径] ...
# 创建容器时,如果没有对应的目录(文件),会自动创建
# 如果需要挂载多个数据卷,则 -v xxx:xxx -v xxx:xxx ...
数据卷容器
容器间之间实现数据交互,除了挂载宿主机中同一个数据卷之外这种方式,还有另外一种方式,就是使用数据卷容器。
创建数据卷容器
docker run -it --name=[容器名] -v [容器中的数据卷文件路径] [镜像名]:[版本号]
其他容器挂载数据卷容器
docker run -it --name=[容器名] --volumes-from [数据卷容器名] [镜像名]:[版本号]