开始之前
如果你有一些需要持续更新的数据并且希望<强>持久化数据>强,或者需要在不同的容器之间<强>共享数据>强,再者需要主机与容器之间共享数据,那么你可以使用数据卷来满足这些需求。
数据卷定义h5>
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过<代码> UFS> 代码,可以提供很多有用的特性:
数据卷可以在容器之间共享和重用。
对数据卷的修改会立马生效。
数据卷默认会一直存在,即使容器被删除。
使用数据卷
数据卷有两种创建方式一是创建容器时创建数据卷,二是先创建好数据卷,在创建容器时挂载这个数据卷,两种方式均可以。
-
<李>创建一个数据卷李>
<代码类=" language-dockerfile ">创建demo-data码头工人卷 demo-data 代码>
-
<李>创建容器使用- v(体积)参数来挂载数据卷李>
<代码类=" language-bash ">码头工人——名字demo1 - d \运行 - v demo-data:/var/www/html nginx:高山 码头工人运行——名称以及接下来- d \ - v demo-data:/var/www/html nginx:高山代码>
-
<李>列出数据卷李>
<代码类=" language-dockerfile ">码头工人卷ls 司机卷名 当地demo-data 代码>
-
<李>查看数据卷详细信息李>
<代码类=" language-bash ">码头工人检查demo-data体积 ( { “司机”:“地方”, “标签”:{}, :“挂载点/var/lib/码头工人/卷/demo-data/_data”, “名称”:“demo-data”, “选项”:{}, “范围”:“本地” } )代码>
-
<李>删除数据卷李>
<代码类=" language-bash "> rm demo-data码头工人卷 错误响应守护进程:删除demo-data:卷使用-[#省略。)代码>
注意:由于有容器正在使用数据卷,提示无法删除数据卷。
测试数据卷
-
<李>宿主机写入数据李>
<代码类="语言">主机名的在/var/lib/docker/volumes/demo-data/_data/hosts.txt 代码>
注意:这个目录对应创建的demo-data数据卷。
-
<李>容器写入数据李>
<代码类=" language-bash ">码头工人exec ti demo1 sh - c的主机名在祝辞/var/www/html/hosts.txt” 码头工人exec ti以及接下来sh - c的主机名在祝辞/var/www/html/hosts.txt”代码>
-
<李>读取数据李>
<代码类=" language-bash ">猫/var/lib/docker/volumes/demo-data/_data/hosts.txt node0 87年c60cbe6147 a6bc3c00c790 代码>
-
<李>删除容器数据卷仍然保留李>
<代码类=" language-bash ">码头工人停止demo1 码头工人停止以及接下来 码头工人rm demo1 码头工人rm以及接下来 代码>
数据卷仍然存在
<代码类=" language-dockerfile ">码头工人卷ls 司机卷名 当地demo-data 代码>
如果需要可以使用rm选项删除数据卷
<代码类=" language-dockerfile "> rm demo-data码头工人卷 代码>
数据卷已不存在
<代码类=" language-dockerfile ">码头工人检查demo-data体积 [] 错误:没有这样的体积:demo-data 代码>
命令帮助h5>
创建容器时挂载数据卷参数
<代码类=" language-bash ">码头工人运行——帮助| grep \ - v” - v,卷列表绑定挂载卷 代码>
删除容器时一并删除数据卷参数(<强>慎用强>)
<代码类=" language-bash ">码头工人rm——帮助| grep \ - v” - v,卷删除卷相关的容器 代码>
数据卷管理命令
<代码类=" language-bash ">码头工人卷——帮助 用法:码头工人卷命令 管理卷 命令: 创建创建一个卷 检查显示详细信息在一个或多个卷 ls列表卷 删除删除所有未使用的本地卷 rm删除一个或多个卷 代码>