存储卷类型

绑定卷

下面的命令将启动一个Apache HTTP 服务器,你的新目录将会被绑定挂载在服务器文档根目录中:

docker run -d --name bmweb -v ~/example-docs:/usr/ocal/apache2/htdocs -p 80:80 httpd:latest

使用‘-v’选项和位置映射来创建绑定挂载卷。该映射以冒号分隔。映射键(冒号之前的路径)是主机文件系统上的一个绝对路径,该键值(冒号后面的路径)是容器中挂载目标存储位置,必须用绝对路径。

Docker管理卷

使用管理卷是一种在文件系统特定位置解藕卷的方法。执行docker run -v ,指定容器目录树中的挂载点,管理卷即可创建。如,在/var/lib/Cassandra/data 指定一个存储卷:

docker run -d -v /var/lib/Cassandra/data --name cass-shared alpine echo Data Container
docker inspect -f "{{json .Volume}}" cass-shared

共享存储卷

创建已知目录

mkdir ~/web-log-example

绑定挂载该目录为日志可写容器

docker run --name plath -d -v ~/web-logs-example:/data dockerinaction/ch4_writer_a

绑定挂载该目录为日志只读容器

docker run --rm -v ~/web-logs-example:/reader-data alpine:latest head /reader-data/logA

查看主机上的日志

cat ~/web-logs-example/logA

终止可写容器

docker stop plath

在此示例中,创建了两个容器,一个名为plath的容器写文件,另一个容器为读该文件。这些容器都有一个共同的绑定挂载卷。

共享和Volume-from标志

docker run --name fowler -v ~/example-books:/library/PoEAA -v /library/DSL alpine:latest echo "Fowler colllection created."

docker run --name knuth -v /library/TAoCP.vo11  -v /library/TAoCP.vo12  -v /library/TAoCP.vo13  -v /library/TAoCP.vo14.a alpine:latest  echo "Knuth collection created"

列出所有复制到新容器的存储卷

docker run --name reader --volumes-from fowler --volumes-from knuth alpine:latest ls -l  /library/ 

查新容器的卷列表

docker inspect --format "{{json .Volumes}}" reader

多态容器模式

创建一个存储容器,包含相应的工具

docker run --name tools dockerinaction/ch4_tools

列出这些共享的工具

docker run --rm --volumes-from tools alpine:latest ls /operations/*

利用这些新的工具,启动一个新的容器

docker run -d --name important_application --volumes-from tools dockerinaction/ch4_ia

在容器中使用这些共享工具

docker exec important_application /operations/tools/someTool

关闭该工具

docker rm -vf important_application

清理这些工具

docker rm -v tools
原文地址:https://www.cnblogs.com/Ethan2lee/p/7474272.html