数据卷:目录映射
数据卷概念和作用
配置数据卷
- 创建启动容器时,使用-v参数 设置数据卷
docker run … -v 宿主机目录文件:容器内目录文件 …- 目录必须是绝对路径、不存在时会自动创建、可以挂在多个数据卷
[root@localhost ~]# docker run -it --name=c3 \
> -v /root/dockerdir/data:/root/data \
> -v /root/dockerdir/data2:/root/data2 \
> centos:7
[root@05e5eededb8d /]# ll /root/
total 4
-rw-------. 1 root root 3416 Oct 1 2019 anaconda-ks.cfg
drwxr-xr-x. 2 root root 21 Apr 26 12:54 data
drwxr-xr-x. 2 root root 6 Apr 26 13:00 data2
[root@05e5eededb8d /]#
可以将一个宿主机的数据卷挂载到不同容器,实现容器间的数据交换和数据持久化
数据卷容器
通过数据卷容器,将其他容器都挂载到该数据卷容器挂载的数据卷上,实现多容器间数据交换
配置数据卷容器
# 1.创建启动cv数据卷容器,使用-v /volume 参数设置数据卷
docker run -it --name=cv -v /volume centos:7 /bin/bash
# 2. 创建cv1 cv2容器,使用--volumes-from cv 参数设置数据卷(--volumes-from 容器cv 创建容器cv1、cv2,同时继承cv和宿主机间的的数据卷配置)
docker run -it --name=cv1 --volumes-from cv centos:7
docker run -it --name=cv2 --volumes-from cv centos:7
docker inspect cv
docker inspect cv1
docker inspect cv2
- “mount”:{}的source中参数相同,三者都挂载到同一个数据卷上了、所以就算cv挂了,cv1、cv2仍然挂载在同一个宿主机目录下,数据卷功能不受影响