gpt4 book ai didi

Docker 容器驱动器与主机上的可用硬盘驱动器空间不匹配

转载 作者:行者123 更新时间:2023-12-02 18:07:50 26 4
gpt4 key购买 nike

我已将新的自定义图像加载到远程 RedHat 7 docker 主机实例中。运行新容器时,容器不会尝试使用整个磁盘。我得到以下是容器上 df -h 的输出:



rootfs 9.8G 9.3G 0 100% /
/dev/mapper/docker-253:0-67515990-5700c262a29a5bb39d9747532360bf6a346853b0ab1ca6e5e988d7c8191c2573
9.8G 9.3G 0 100% /
tmpfs 1.9G 0 1.9G 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/mapper/vg_root-lv_root
49G 25G 25G 51% /etc/resolv.conf
/dev/mapper/vg_root-lv_root
49G 25G 25G 51% /etc/hostname
/dev/mapper/vg_root-lv_root
49G 25G 25G 51% /etc/hosts
tmpfs 1.9G 0 1.9G 0% /proc/kcore
tmpfs 1.9G 0 1.9G 0% /proc/timer_stats

但是主机系统有更多的空间:



Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_root-lv_root 49G 25G 25G 51% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.5M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/vg_root-lv_home 9.8G 73M 9.7G 1% /home
/dev/sda1 497M 96M 402M 20% /boot

似乎 docker 正在将/home 映射的 9.8 gigs 分配给容器的整个驱动器。所以我想知道我看到这个是否有原因?

最佳答案

问题

我能够解决这个问题。该问题与正在安装到容器的卷无关(即它没有将主卷安装为容器上的根卷)。出现此问题是因为 docker 使用 RedHat 中的设备映射器来管理其容器的文件系统。默认情况下,容器将从 10G 的空间开始。一般来说,docker会使用AUFS来管理容器的文件系统。大多数基于 Debian 的 Linux 版本都是这种情况,但 RedHat 改用设备映射器。

解决方案

幸运的是,设备映射器的大小可以在 docker 中配置。首先,我必须停止我的服务,并删除我所有的图像/容器。 (注意:此操作无法恢复,因此请根据需要备份所有图像)。

sudo service stop docker && sudo rm -irf /var/lib/docker

然后,使用所需的大小参数手动启动 docker 实例:

sudo docker -d --storage-opt dm.basesize=[DESIRED_SIZE]

就我而言,我将容器大小增加到 13G:

sudo docker -d --storage-opt dm.basesize=13G

然后在 docker 仍在运行的情况下,拉取/重新加载所需的图像,启动一个容器,现在大小应该与所需的大小相匹配。

接下来,我将我的 docker systemd 服务文件设置为以所需的容器大小启动。这是必需的,以便 docker 服务将以所需的大小启动容器。我在/etc/sysconfig/docker 文件中编辑了 OPTIONS 变量。现在看起来像这样:

OPTIONS='--selinux-enabled --storage-opt dm.basesize=13G'

最后,重启docker服务:

sudo service stop docker

引用资料

[1] https://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/ - 这就是我发现 RedHat 使用设备映射器的方式,并且该设备映射器有 10G 的限制。

[2] https://docs.docker.com/reference/commandline/cli/ - 在 docker 文档中找到存储选项。

关于Docker 容器驱动器与主机上的可用硬盘驱动器空间不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com