【问题标题】:docker: Check space left on volume from container [closed]docker:检查容器中剩余的空间[关闭]
【发布时间】:2020-11-11 18:52:39
【问题描述】:

我有一个安装在容器中的卷。该卷具有固定大小,容器将数据写入该卷。如何从容器内检查卷上剩余的空间。

我可以在运行 docker 的主机上运行命令,但是否可以从挂载卷的容器内部执行此操作?

【问题讨论】:

    标签: docker docker-volume docker-container


    【解决方案1】:

    您基本上可以像在普通 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
    

    【讨论】:

      【解决方案2】:

      假设您使用以下命令创建卷:

      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
      

      【讨论】:

        猜你喜欢
        • 2019-05-11
        • 1970-01-01
        • 2014-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-18
        • 2021-06-10
        相关资源
        最近更新 更多