我已将新的自定义图像加载到远程RedHat 7泊坞窗主机实例中。运行新容器时,容器不会尝试使用整个磁盘。我得到以下是容器上df -h的输出:
<httpRuntime targetFramework="4.5.1" />
但主机系统有更多空间:
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
似乎docker正在将9.8演出的/ home映射分配给容器的整个驱动器。所以我想知道我是否有理由看到这个?
答案 0 :(得分:0)
我能够解决这个问题。该问题与安装到容器的卷无关(即,未将主卷安装为容器上的根卷)。出现此问题的原因是Docker使用RedHat中的device-mapper来管理其容器的文件系统。默认情况下,容器将以10G空间开始。通常,docker将使用AUFS来管理容器的文件系统。大多数基于Debian的Linux版本就是这种情况,但RedHat使用的是device-mapper。
幸运的是,设备映射器大小可以在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使用device-mapper的方式,而device-mapper的限制为10G。
[2] https://docs.docker.com/reference/commandline/cli/ - 在dockers文档中找到存储选项。