开发者社区> 问答> 正文

docker volume size控制数据卷存储大小

一、【现象】
最新在学习docker,在学习到数据卷的时候发现docker API提供了(dcoker volume create)命令,而且还可以设置数据卷大小,所以就尝试创建了数据卷、限制了数据卷大小并挂载到容器上,在测试阶段发现无论给宿主机中的数据卷目录下写数据还是给容器写数据,数据卷大小都没有受到限制。

二、【疑问】
1.实际数据卷大小并没有收到限制,是我的数据卷命令创建的有问题,还是我的测试步骤或者形式有问题呢?
2.设置了数据卷的大小,预期的效果是什么样?超出限制大小系统会给出错误提示,还是数据仍会写进去,但之前的数据有丢失?

三、【操作步骤】
1.创建数据卷限制大小为3M,启动容器并挂载该数据卷
2.通过命令的形式给宿主机中的数据卷写了一个3M的文件(文件名:3M.file),并查看文件大小
3.进入到容器查看/data目录下文件大小,发现也生成3M.file文件,而且文件的大小跟宿主机一样为3.0M
volume_1
volume_2
volume_3

PS:路过的大神麻烦指条明路,问题到底出现在哪里,怎样才能控制住数据卷的大小呢,在线等~~~
如果有docker相关的微信群麻烦也提供下,我进去咨询咨询,再次谢过~~~

展开
收起
思念灬终结 2017-09-08 10:31:24 8447 0
1 条回答
写回答
取消 提交回答
  • 数据卷大小的配置是需要存储卷驱动的支持,目前只有少数驱动是支持的。


    [root@iZbp11ijrxjhhqpb6qbpd5Z ~]# docker run -d --name tmptest --mount type=tmpfs,destination=/app,tmpfs-mode=1770,tmpfs-size=3000000 nginx:latest
    Digest: sha256:ccdb5fdf47709493f9fc5af32478c0d86b3cbee0c306e3f04a0d3e640a50ea2d
    Status: Downloaded newer image for nginx:latest
    14ca6387e66f8376c61c984d7b8e310fa69001058662e63c9b14f94077688b37

    [root@iZbp11ijrxjhhqpb6qbpd5Z ~]# docker ps | grep nginx
    14ca6387e66f nginx:latest "nginx -g 'daemon ..." 5 seconds ago Up 4 seconds 80/tcp tmptest

    [root@iZbp11ijrxjhhqpb6qbpd5Z ~]# docker exec -ti 14ca6387e66f sh

    df -h

    Filesystem Size Used Avail Use% Mounted on
    overlay 40G 4.3G 33G 12% /
    tmpfs 1.9G 0 1.9G 0% /dev
    tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
    tmpfs 2.9M 0 2.9M 0% /app
    /dev/vda1 40G 4.3G 33G 12% /etc/hosts
    shm 64M 0 64M 0% /dev/shm
    tmpfs 1.9G 0 1.9G 0% /sys/firmware

    刚才做了一个实验,结果显示是支持的。

    df -h

    Filesystem Size Used Avail Use% Mounted on
    overlay 40G 4.3G 33G 12% /
    tmpfs 1.9G 0 1.9G 0% /dev
    tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
    tmpfs 2.9M 2.7M 220K 93% /app
    /dev/vda1 40G 4.3G 33G 12% /etc/hosts
    shm 64M 0 64M 0% /dev/shm
    tmpfs 1.9G 0 1.9G 0% /sys/firmware

    ls -l

    total 2712
    -rw-r--r-- 1 root root 2382280 Mar 30 07:14 aa
    -rw-r--r-- 1 root root 392408 Mar 30 07:13 bb

    cat bb >> aa

    cat: write error: No space left on device

    配置的tmpfs的大小是3M,当空间只剩下220K的时候,再往里写入390K的数据,会有上述报错;

    2019-07-17 21:34:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
Docker@Alibaba——超大规模Docker化的实战经验 立即下载