Docker笔记--使用数据卷实现容器与宿主机的数据交互

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 不会被删除!

Docker笔记--使用数据卷实现容器与宿主机的数据交互_第1张图片

② 利用多个 -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,两个容器可以通过这个数据卷实现数据的交互!

你可能感兴趣的:(Docker学习笔记,docker,容器,运维)