1--数据卷的介绍和作用
在 Docker 架构中,宿主机系统和容器之间不能直接传递数据,同时当容器被删除时,容器所有的数据都会被清除;
数据卷能够在宿主机与容器、容器与容器之间搭建数据传输和共享的通道,当容器内的目录与宿主机的目录建立映射关系时,宿主机和容器就能进行数据交互;而建立映射关系的宿主机目录就是一个数据卷。
2--Docker配置数据卷
① 使用 -v 参数建立映射关系来配置数据卷:
docker run ... -v local_path:container_path ...
# local_path表示宿主机目录(文件)
# container_path表示容器内目录(文件)
在上图中,创建了一个新容器 test1211,数据卷为宿主机的 /home/local_test 目录,与其映射的容器目录为 /data/container_test;
在宿主机目录 /home/local_test 添加或修改数据内容,都会直接映射到容器的目录中 /data/container_test;同理容器在 /data/container_test 目录中添加或修改数据,都能直接映射到宿主机目录 /home/local_test 中;
需要说明的是,删除容器 test1211 后,数据卷目录即 /home/local_test 不会被删除!
② 利用多个 -v 参数使得一个容器挂载多个数据卷目录
docker run ... -v local_path1:container_path1 -v local_path2:container_path2 ...
# local_path1、local_path2 表示宿主机目录(文件)
# container_path1、container_path2 表示容器内目录(文件)
③ 将两个容器挂载到同一个数据卷,可以实现两个容器之间的数据交互。
docker run -it --name=test1 -v local_path:container_path1 ...
docker run -it --name=test2 -v local_path:container_path2 ...
在上述代码中,创建了两个容器 test1 和 test2,两者都挂载在了同一个数据卷 local_path,两个容器可以通过这个数据卷实现数据的交互!