docker对数据的管理有一套独特的方法。
Data Volume
Data Volume(数据卷),本质上还是宿主机文件系统中的目录或文件,通过类似mount的操作,是数据卷可以在容器之间共享使用,并且对数据卷的更改会马上生效,对数据卷的修改不会影响镜像,数据卷会持久化。
Data Volume有以下特点:
- Data Volume是目录或文件,而不是磁盘
- 容器可以对数据卷中的数据进行读写
- 即使容器已被销毁,数据卷中的数据也可以继续存在
运行一个容器,将本地的/var/log目录挂载到容器的/tmp目录下
docker run -dti -v /var/log:/tmp centos:latest /bin/bash
进入容器的/tmp下,看到位于宿主机/var/log/下的所有文件
进行数据修改,修改的数据也出现在宿主机的/var/log/下
Data Volume Dontainers
当用户需要在容器之间共享一些持续更新的数据时,就可以用到数据卷容器,其实数据卷容器就是一个容器,专门用来为其他容器提供挂载的数据卷。
创建一个数据卷容器
docker run -itd -v /data/:/tmp --name data centos:latest
创建两个容器挂载挂载data容器的/tmp数据卷
docker run -itd --volumes-from data centos:latest
docker run -itd --volumes-from data centos:latest
验证三个容器下的/tmp中的数据是否可以实时同步