目录
6. 容器存储收起
6.1 绑定挂载
6.2 码头工人管理的卷
6.3 体积容器
关注博主不迷路,叶秋学长带你上高速~~
6. 容器存储收起
6.1 绑定挂载
①运行容器,并将宿主机上的目录挂载到容器。
mkdir -p /home/container/htdocs cd /home/container/htdocs/ docker run -d -p 80:80 -v /home/container/htdocs/:/usr/local/apache2/htdocs/ httpd docker container ls
使用docker inspect命令查询容器元数据可以获取mount具体信息。
注意:请使用前一条命令返回的容器ID替换命令中的【容器ID】。
docker inspect 容器ID
②宿主机目录内更新文件,验证容器内读取。
cd /home/container/htdocs/ echo “this is page from host directory.” > index.html cat index.html
③删除容器,验证数据持久化。 使用docker rm删除容器,(删除前先停止容器),并在宿主机挂载源查看文件内容。
注意:请使用第一步的命令返回的容器ID替换命令中的【容器ID】。
docker rm 容器ID -f cd /home/container/htdocs/ ls cat index.html
6.2 码头工人管理的卷
(1)运行容器,并使用docker managed volume挂载到容器.
docker run -d -p 80:80 -v /usr/local/apache2/htdocs/ httpd
查询容器元数据可以获取mount具体信息。
docker container ls docker inspect 容器ID
说明:容器元数据mount具体信息内可以看到mount类型为volume,并且源路径由系统自动分配。
②在容器内修改文件内容,并在宿主机挂载原路径验证。 在容器内修改挂载路径的文件内容,并在宿主机通过curl验证显示结果。
注意:请使用第一步返回的容器ID替换命令中的【容器ID】。
docker exec -it 容器ID bash cd htdocs/ echo "this is page from docker managed volume. " > index.html exit curl localhost:80
通过第一步中获取的“source” 信息或docker inspect命令获取宿主机挂载源路径,然后验证其文件内容。
cd 挂载源路径 ls cat index.html
③删除容器,验证数据持久化。 可以使用docker rm删除容器,(删除前请先停止容器),并在宿主机挂载源查看文件内容。容器ID与挂载源路径同上。
docker rm 容器ID -f cd 挂载源路径 ls cat index.html
6.3 体积容器
(1)创建预备卷容器。 说明:Volume container可以给其他容器提供bind mount或docker Managed Volume。volume container不需要处于运行状态,创建出来即可。 在宿主机创建路径和文件,作为bind mount的源路径。
mkdir -p /home/vccontainer/htdocs cd /home/vccontainer/htdocs echo " this is page from vccontainer. " > index.html cat index.html
创建预备卷容器。
docker create --name vccontainer -v /home/vccontainer/htdocs:/usr/local/apache2/htdocs -v /other/tools/ busybox
注意:请使用前一步返回的容器ID替换命令中的【容器ID】。
docker inspect 容器ID
说明:该volume container元数据内mount部分记录了bind mount类型和docker managed volume类型,这两个部分均可以提供给其他容器。 (2)运行容器,使用步骤1中volume container提供的卷。
docker run -td -p 80:80 --volumes-from vccontainer busybox
注意:请使用前一步返回的容器ID替换命令中的【容器ID】。
docker inspect 容器ID
说明:通过查询该容器元数据,其mount部分内容和步骤1中volume container完全一致。 ③针对步骤2运行的容器,验证容器内路径和宿主机路径信息。
docker exec -it 容器ID sh
在容器内docker manage volume挂载路径创建文件,验证宿主机路径信息。
cd /other/tools/ echo “this is page from container.”> test.out exit
通过第一步中获取的“source” 信息或docker inspect命令获取宿主机挂载源路径。
cd 挂载源路径 cat test.out