容器中数据管理主要分为两种方式:数据卷 和 数据卷容器
- 数据卷
- 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,类似于Linux下对目录执行mount操作
- 创建一个数据卷
在容器内创建数据卷挂载到/volume目录下,相当于容器间的共享目录: docker run -dti -v /volume1 --name test1 centos:ifconfig /bin/bash 将宿主机目录挂载到容器作为数据卷: docker run -dti -v /test:volume2:ro --name test2 centos:ifconfig /bin/bash
- 数据卷容器
- 容器间共享数据,尤其是持续更新的数据时可以用此,因为任何一个相关容器对数据卷的修改都会立即生效,更新到每一个挂载的容器中
容器1建数据卷c1: docker run -dti -v /volume1 --name "c1" centos:tag1 /bin/bash 容器c2挂载c1的数据卷: docker run -dti --volumes-from c1 --name "c2" centos:tag2 /bin/bash 容器c3挂载c1的数据卷: docker run -dti --volumes-from c1 --name "c3" centos:tag3 /bin/bash
- 容器c1数据卷volume中新建文件a.txt, 查看c2和c3中挂载的volume中已经存在文件a.txt
- 删除数据卷容器
- 在c1、c2、c3中删除volume时报错,提示正在使用无法删除
- 即只要c1、c2、c3存在其中的一个数据卷就仍存在