一、【现象】
最新在学习docker,在学习到数据卷的时候发现docker API提供了(dcoker volume create)命令,而且还可以设置数据卷大小,所以就尝试创建了数据卷、限制了数据卷大小并挂载到容器上,在测试阶段发现无论给宿主机中的数据卷目录下写数据还是给容器写数据,数据卷大小都没有受到限制。
二、【疑问】
1.实际数据卷大小并没有收到限制,是我的数据卷命令创建的有问题,还是我的测试步骤或者形式有问题呢?
2.设置了数据卷的大小,预期的效果是什么样?超出限制大小系统会给出错误提示,还是数据仍会写进去,但之前的数据有丢失?
三、【操作步骤】
1.创建数据卷限制大小为3M,启动容器并挂载该数据卷
2.通过命令的形式给宿主机中的数据卷写了一个3M的文件(文件名:3M.file),并查看文件大小
3.进入到容器查看/data目录下文件大小,发现也生成3M.file文件,而且文件的大小跟宿主机一样为3.0M
PS:路过的大神麻烦指条明路,问题到底出现在哪里,怎样才能控制住数据卷的大小呢,在线等~~~
如果有docker相关的微信群麻烦也提供下,我进去咨询咨询,再次谢过~~~
数据卷大小的配置是需要存储卷驱动的支持,目前只有少数驱动是支持的。
[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
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
刚才做了一个实验,结果显示是支持的。
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
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: write error: No space left on device
配置的tmpfs的大小是3M,当空间只剩下220K的时候,再往里写入390K的数据,会有上述报错;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。