1.什么是数据卷
数据卷是持久化数据,它的生命周期独立于容器,Docker不会再容器被删后自动删除数据卷,数据卷也不会被垃圾回收这样的机制处理掉,所有无用的数据卷要及时处理掉,不然会被占用很多空间
2. 数据卷的基本代码
注:数据卷创建后默认位置一般在 var/lib/docker/volumes/中
1.宿主机上先创建数据卷
docker volume create my-vol
2.查看所有的数据卷
docker volume ls
3.查看指定数据卷的详细信息(显示一个JSON格式的数据)
docker volume inspect my-vol
4.删除一个volume
docker volume rm my-vol
3. 两种挂载方式
5.启动一个挂载数据卷的容器
demo1(挂载数据卷)
docker run -d
-it
–name tomcat01
–mount source=my-vol,target=/webapp
centos:latest
demo2(挂载目录,目录必须提前创建)
docker run -d
-it
–name tomcat02
–mount type=bind,source=/webapp01,target=/opt/webapp
centos:latest
注3:mount选项高级用法
–mount选项的type参数支持三种类型的数据卷
–mount标志:由多个名值对组成,逗号分隔,每个键值由 = 元组组成
1.type=volume普通数据卷(默认即这种类型),映射到主机/var/lib/docker/volumes路径下;
–mount type=volume,source=my-vol,target=/webapp
注:type的默认值,提前先创建数据卷
2.bind:绑定数据卷,映射到主机指定路径下;
–mount type=bind,source=/webapp,destination=/webapp2
3.tmpfs :临时数据卷,只存在于内存中
docker run -d
-it
–name tmptest
–mount type=tmpfs,destination=/app
nginx:latest
4.target:表示数据卷的位置
数据卷容器相关操作
1.新建数据卷容器
docker run -itd --name db_data -v /db_data centos
2.用容器db1测试数据卷容器是否可用
2.1新建一个db1容器
docker run -itd --name db1 --volumes-from db_data centos 2 docker
2.2 进入db1容器里
exec -it db1 bash
2.3 进入公共目录的位置&&增加一个文件
cd db_data
touch abc.txt
2.4 进入到db_data容器的db_data文件夹里查看是否有abc.txt
exec -it db_data bash
cd db_data && ls