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数据卷之进阶篇

容器之间数据共享,修改同步

配置如下:

  1. type 指定挂载方式,我们这里用到的是 volume,其实还可以有 bind tmpfs

Volunme:这个目录只有Docker可以管理,其他进程不能修改。如果想持久保存容器的 应用数据,VolumesDocker推荐的挂载方式。

Bind:容器内的数据被存放到宿主机文件系统的任意位置,甚至存放到一些重要的系统 目录或文件中。除了Docker之外的进程也可以任意对他们进行修改;

tmpfs容器的数据只会存放到宿主机的内存中,不会被写到宿主机的文件系统中,因 此不能持久保存容器的应用数据。

  1. volume-driver 指定挂载数据卷的驱动程序,默认值是 local
  2. source 指定挂载的源,对于一个命名的数据卷,这里应该指定这个数据卷的名称。在使用时可以写 source,也可以简写为 src
  3. destination 指定挂载的数据在容器中的路径。在使用时可以写 destination,也可以简写为 dst target
  4. readonly 指定挂载的数据为只读。
  5. volume-opt 可以指定多次,用来提高更多的 mount 相关的配置。
  6. 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)

Docker中未指定挂载点容器间volume卷的数据共享

Linux下部署docker记录-Volume使用

volume 方式使用 Secret - 每天5分钟玩转 Docker 容器技术(157)

Docker Volume