gpt4 book ai didi

docker - 创建大小有限的 docker 卷

转载 作者:行者123 更新时间:2023-12-02 07:29:46 25 4
gpt4 key购买 nike

有关使用选项“https://docs.docker.com/engine/reference/commandline/volume_create/”创建卷的信息非常有限。

我只是想创建一个大小有限的卷,我尝试过,

docker volume create --opt o=size=10m hello-volume

,当使用“docker run -v hello-volume:/hello -it ubuntu/bin/bash”运行一个简单的 hello world 容器时,我收到类似“docker: 来自守护进程的错误响应:…没有这样的错误”设备”...

所以我假设我们在创建卷时必须给出完整的选项,例如

“docker volume create --driver local --opt type=*** --opt device=*** --opt o=size=10m hello-volume”

?如果是这样,这里的“类型”和“设备”是什么?我猜该设备实际上是任何目录的路径?我试过了

“docker volume create --driver local --opt type=volume --opt device=/ --opt o=size=10m hello-volume”.

当尝试将容器运行为“docker run -v hello-volume:/hello -it ubuntu/bin/bash”时,我收到错误“docker:来自守护进程的错误响应:安装卷'/var/时出错” lib/docker/volumes/hello-volume/_data':使用选项安装卷时出错:type='volume' device='/' o='size=10m':没有这样的设备。”。

我试过了

docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=10m hello-volume

终于可以工作了,但是数据在内存中,不是持久的。那么谁能指出创建卷时“类型”和“设备”的选项是什么(或者如果我们不提供任何选项,则默认选项是什么)?

更新:

只是想更新一下,似乎没有办法限制 ext4 类型的本地驱动程序中的磁盘大小(尽管在几个答案和其他帖子中声称可行)。主要原因是“ext4”文件系统中没有这样的“size”参数。我创建了一个 docker 卷:

docker volume create --driver local --opt type=ext4 --opt device=/dev/xvdf --opt o=size=10m hello-volume

然后检查它(dockervolumeinspecthello-volume),并用容器挂载它,现在一切看起来都很好。

[
{
"CreatedAt": "2018-09-01T04:23:57Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/hello-volume/_data",
"Name": "hello-volume",
"Options": {
"device": "/dev/xvdf",
"o": "size=10m",
"type": "ext4"
},
"Scope": "local"
}
]

docker run -v hello-volume:/myfile1 -exec -it ubuntu /bin/bash

但是当您在该容器的“/myfile1”中写入/放置一个大文件(大于10m)时,不会抛出警报/异常,写入成功。我认为 ext4 类型文件系统无法识别“o=size=10m”。

最佳答案

这实际上可以使用 dockers local 卷驱动程序实现。该驱动程序接受类似于 linux mount 的选项选项。看看这个优秀的answer .

您已经接近尝试了。您需要指定 --opt device= 以及 --opt type= 选项。这实际上会将主机上的 block 设备作为卷安装到 docker 容器中。 type 选项指定要使用的文件系统类型。 device 选项要求您指定主机上的 block 设备之一 - 例如 /dev/sda2。您可以通过运行 lsblk 查看完整列表。

但是,映射现有驱动器(除非它们未使用)是一个坏主意。因此,您需要创建一个新的 block 设备(使用 lvm 或等效工具),或者为了进行测试,您可以使用 volatile 存储(tmpfs),正如您所尝试的那样。

关于docker - 创建大小有限的 docker 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52089499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com