【发布时间】:2022-06-13 08:03:08
【问题描述】:
我已经使用--privileged 标志启动了我的容器,据我所知,所有磁盘都应该在容器内部可用 - 这部分是正确的,但我不知何故无法读取它们的大小。
lsblk 在主机(Ubuntu)上:
sda 8:0 1 59,6G 0 disk
└─sda1 8:1 1 59,6G 0 part /media/mauz/ESD-ISO
nvme0n1 259:0 0 953,9G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
├─nvme0n1p2 259:2 0 732M 0 part /boot
└─nvme0n1p3 259:3 0 952,7G 0 part
└─nvme0n1p3_crypt 253:0 0 952,6G 0 crypt
├─vgubuntu-root 253:1 0 930,4G 0 lvm /
└─vgubuntu-swap_1 253:2 0 976M 0 lvm [SWAP]
lsblk 在容器中(Alpine):
sda 8:0 1 59.6G 0 disk
└─sda1 8:1 1 59.6G 0 part
nvme0n1 259:0 0 953.9G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part
├─nvme0n1p2 259:2 0 732M 0 part
└─nvme0n1p3 259:3 0 952.7G 0 part
两个输出都从loop 设备中剥离,但如您所见,两者都识别出 2 个驱动器。
现在,如果我在主机上运行df 命令:
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 3261580 2564 3259016 1% /run
/dev/mapper/vgubuntu-root 959200352 137078032 773327904 16% /
tmpfs 16307884 215740 16092144 2% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
/dev/nvme0n1p2 721392 364788 304140 55% /boot
/dev/nvme0n1p1 523248 76232 447016 15% /boot/efi
tmpfs 3261576 140 3261436 1% /run/user/1000
/dev/sda1 62519040 23118848 39400192 37% /media/mauz/ESD-ISO
在容器内:
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 959200352 137078188 773327748 15% /
tmpfs 65536 0 65536 0% /dev
shm 65536 0 65536 0% /dev/shm
/dev/mapper/vgubuntu-root
959200352 137078188 773327748 15% /app
/dev/mapper/vgubuntu-root
959200352 137078188 773327748 15% /etc/os-release
/dev/mapper/vgubuntu-root
959200352 137078188 773327748 15% /etc/resolv.conf
/dev/mapper/vgubuntu-root
959200352 137078188 773327748 15% /etc/hostname
/dev/mapper/vgubuntu-root
959200352 137078188 773327748 15% /etc/hosts
不知何故,它没有在第二个df 输出中显示正确的驱动器。有没有办法让df 显示正确的输出,即使在容器内?
或者还有其他方法可以从主机获取正确的磁盘大小和使用情况?
【问题讨论】:
-
容器和宿主机挂载不同是正常的。
-
好的,我如何让它们一样?
/dev/sda看起来像已安装(lsblk),只是 df 没有做任何事情。如果你真的知道一些事情,如果你能详细说明,那就太好了。 @菲利普 -
/dev/sda在容器中是visible,但不是mounted。为什么要看到df的相同输出? -
我怎样才能读取卸载驱动器的磁盘大小呢?我需要所有磁盘的大小,因为我正在开发某种仪表板来监视单个节点上的资源。这是一个开源项目,因此易于安装是最大的卖点之一——这就是它需要被 docker 化的原因。 @菲利普
-
我现在明白了。我不认为 docker 是满足您要求的最佳方式。