我知道docker volume ls和docker inspect -s,但前者不显示大小信息,而后者,即使它有一个--size选项,也会忽略它的卷。我是不是漏掉了什么?
docker volume ls
docker inspect -s
--size
kulphzqa1#
您可以用途:
docker system df -v
字符串更多信息https://docs.docker.com/engine/reference/commandline/system_df/
oxiaedzo2#
这一点:
docker volume inspect --format '{{ .Mountpoint }}' volumeNameHere
字符串将返回主机上卷的装载点。所以,要得到尺寸,只需要做:
du -sh $(docker volume inspect --format '{{ .Mountpoint }}' volumeNameHere)
型
jtjikinw3#
基于Federkun的回答:
docker run --rm -v /:/vm-root alpine du -sH /vm-root/$(docker volume inspect --format '{{ .Mountpoint }}' volumeNameHere)
字符串
xj3cbfub4#
Federkun回答的第一步对我很有效,它返回了这样的内容:
/var/lib/docker/volumes/f4678f...b87/_data
字符串但当我试着
型它返回了一个
du: /var/lib/docker/volumes/f4678f...b87/_data: No such file or directory
型事实证明,Docker在macOS上的工作方式不同。根据this answer,在运行du -sh命令之前,我必须首先将screen插入MacOS使用的Docker虚拟机。您可以通过运行
du -sh
screen
sudo screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
型然后你就可以跑了
du -sh /var/lib/docker/volumes/f4678f...
型以最终获得卷大小。
am46iovg5#
正如@MikeWu的回答所指出的,可以通过以下方式看到Docker Volumes的大小:
字符串但是必须滚动一点以找到区段Local Volumes space usage:。使用管道sed命令,如:
Local Volumes space usage:
sed
docker system df -v | sed -n '/VOLUME NAME/,/^ *$/p'
型将有助于提高可读性并减少输出到感兴趣的部分-通过仅从VOLUME NAME打印直到第一个空行。
VOLUME NAME
mjqavswn6#
您可以使用Go模板来格式化DiskUsageContext:
docker system df --verbose --format '{{ range .Volumes }}{{ .Name }} {{ .Size }}\n{{ end }}'
字符串如果你想检查一个特定的卷,并将人类可读的值转换回字节,你可以使用awk:
awk
docker system df --verbose --format '{{ range .Volumes }}{{ .Name }} {{ .Size }}\n{{ end }}' | awk -v "volume_name=VOLUME_NAME" 'BEGIN { sizes["k"] = 1024; sizes["M"] = 1024^2; sizes["G"] = 1024^3; sizes[""] = 1; } match($0, "^" volume_name " ([0-9.]+)([kMG]?)B$", arr) { printf("%d\n", arr[1] * sizes[arr[2]]); }'
6条答案
按热度按时间kulphzqa1#
您可以用途:
字符串
更多信息https://docs.docker.com/engine/reference/commandline/system_df/
oxiaedzo2#
这一点:
字符串
将返回主机上卷的装载点。所以,要得到尺寸,只需要做:
型
jtjikinw3#
基于Federkun的回答:
字符串
xj3cbfub4#
Federkun回答的第一步对我很有效,它返回了这样的内容:
字符串
但当我试着
型
它返回了一个
型
事实证明,Docker在macOS上的工作方式不同。根据this answer,在运行
du -sh
命令之前,我必须首先将screen
插入MacOS使用的Docker虚拟机。您可以通过运行型
然后你就可以跑了
型
以最终获得卷大小。
am46iovg5#
正如@MikeWu的回答所指出的,可以通过以下方式看到Docker Volumes的大小:
字符串
但是必须滚动一点以找到区段
Local Volumes space usage:
。使用管道sed
命令,如:型
将有助于提高可读性并减少输出到感兴趣的部分-通过仅从
VOLUME NAME
打印直到第一个空行。mjqavswn6#
您可以使用Go模板来格式化DiskUsageContext:
字符串
如果你想检查一个特定的卷,并将人类可读的值转换回字节,你可以使用
awk
:型