【发布时间】:2020-11-11 18:52:39
【问题描述】:
我有一个安装在容器中的卷。该卷具有固定大小,容器将数据写入该卷。如何从容器内检查卷上剩余的空间。
我可以在运行 docker 的主机上运行命令,但是否可以从挂载卷的容器内部执行此操作?
【问题讨论】:
标签: docker docker-volume docker-container
我有一个安装在容器中的卷。该卷具有固定大小,容器将数据写入该卷。如何从容器内检查卷上剩余的空间。
我可以在运行 docker 的主机上运行命令,但是否可以从挂载卷的容器内部执行此操作?
【问题讨论】:
标签: docker docker-volume docker-container
您基本上可以像在普通 Linux 机器上一样获得容量:df -h 在容器内执行:
先决条件 A: 创建一个固定大小的卷 p>
docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 fixed-size-volume
先决条件 B: 将卷安装在容器中您需要安装点的任何位置(在我的示例中为 /var/fixed-mount-point)
docker run -it --rm --mount source=fixed-size-volume,target=/var/fixed-mount-point alpine sh
第 1 步: 列出容器内的挂载并按挂载点的名称进行过滤(自从我使用 -it 以来,我的容器内已经有了一个终端。要打开一个终端,您可以使用docker exec -ti <containerID> sh
/ # df -h | grep fixed
tmpfs 100.0M 0 100.0M 0% /var/fixed-mount-point
第二步:在挂载点创建一个dummy文件:我用dd创建了一个1MB的文件
dd if=/dev/zero of=/var/fixed-mount-point/file.txt count=1024 bs=1024
第 3 步:再次检查卷的容量。注意从 0% 到 1% 的变化
/ # df -h | grep fixed
tmpfs 100.0M 1.0M 99.0M 1% /var/fixed-mount-point
【讨论】:
假设您使用以下命令创建卷:
docker volume create --driver local \
--opt type=tmpfs \
--opt device=tmpfs \
--opt o=size=100m,uid=1000 \
data_vol
您可以使用卷运行 docker(shell 命令用于模拟数据创建):
docker run --name vol_test --rm -v data_vol:/data busybox sh -c "while true; do df -h | grep /data ; sleep 1; dd if=/dev/zero bs=1M count=1 >> /data/test;done"
您也可以使用 exec 从外部跟踪音量演变:
docker exec vol_test df -h | grep /data
【讨论】: