docker volume创建时能不能指定size
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker volume创建时能不能指定size相关的知识,希望对你有一定的参考价值。
参考技术A docker volume默认使用本地文件系统存储,不支持手动配置volume大小。但是目前docker volume是支持多种存储后端,支持列表:,但直接支持存储空间大小目前好像并未实现。docker rbd驱动能够固定分配20GB的image供每个volume使用,但我认为要实现自定义大小其实并不难。完全可以通过-o传递额外参数,比如表示大小的size参数,存储后端可以根据size参数分配指定大小的存储。volume目前支持Flocker驱动,已经实现自定义大小,通过-o size参数指定,存储后端包括EBS、Cinder等。不过好像尚未实现直接管理cinder volume,不过已经有很多讨论device - Docker and Cinder, is it possible in openstack?,Persistent volumes with OpenStack · Issue #1958 · docker/machine · GitHub . 如果有需求,可以手动实现自己的存储驱动,支持自定义大小。Docker数据卷之进阶篇
【容器之间数据共享,修改同步】
配置如下:
- type 指定挂载方式,我们这里用到的是 volume,其实还可以有 bind 和 tmpfs。
Volunme:这个目录只有Docker可以管理,其他进程不能修改。如果想持久保存容器的 应用数据,Volumes是Docker推荐的挂载方式。
Bind:容器内的数据被存放到宿主机文件系统的任意位置,甚至存放到一些重要的系统 目录或文件中。除了Docker之外的进程也可以任意对他们进行修改;
tmpfs:容器的数据只会存放到宿主机的内存中,不会被写到宿主机的文件系统中,因 此不能持久保存容器的应用数据。
- volume-driver 指定挂载数据卷的驱动程序,默认值是 local。
- source 指定挂载的源,对于一个命名的数据卷,这里应该指定这个数据卷的名称。在使用时可以写 source,也可以简写为 src。
- destination 指定挂载的数据在容器中的路径。在使用时可以写 destination,也可以简写为 dst 或 target。
- readonly 指定挂载的数据为只读。
- volume-opt 可以指定多次,用来提高更多的 mount 相关的配置。
- Target=/data,挂载到容器/data目录,没有则自动创建表
创建挂载卷:docker volume create my-data
卷的详细信息:docker volume inspect my-data
数据卷列表:docker volume ls
移除卷:docker volume rm my-data
清除无主的数据卷:docker volume prune
我们可以使用-f或--force选项强行删除正在使用中的容器。然后再删除卷:
docker container rm –f $(docker container ls -aq)
docker volume rm my-data
挂载数据卷命令:[默认目录:/var/lib/docker/volumes/my-data]
1.docker run -id --mount type=volume,source=my-data,target=/data ubuntu /bin/bash
2.docker run -it -v /home/data/:/home/data/:ro --name test ubuntu:16.04 bin/bash
容器目录挂载本地目录:[冒号前为宿主机目录,冒号后为容器目录]
默认挂载的路径权限为读写:[ro表示readonly只读]
注意:
1.如果本地数据卷或者本地目录尚未创建,-v命令则会自动创建,--mount则会报错
2.如果是容器里的目录不存在,两者都会自动创建
3.--mount命令解析:
由多个键=值组成,
有type=bind/volume/tmpfs,(省略该字段则默认为volume)
可使用source/src=本机目录文件,(省略该字段则为匿名卷)
target/destination/dst=容器目录,
可指定readonly)
以上是关于docker volume创建时能不能指定size的主要内容,如果未能解决你的问题,请参考以下文章
创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)