3.9.2. 配置精简池存储
您可以使用 Docker 中包含的 docker-storage-setup 脚本来创建精简池设备并配置 Docker 的存储驱动程序。安装 Docker 后,可以进行此操作,且必须在创建镜像或容器前进行此操作。该脚本从 /etc/sysconfig/docker-storage-setup 文件中读取配置选项,并支持 3 个创建逻辑卷的选项:
- 使用附加块设备。
- 使用一个已存在的指定的卷组。
- 使用 root 文件系统所在卷组中的剩余空间。
使用附加块设备是最可靠的选项,但需要在配置 Docker 存储前向您的主机添加另一个块设备。其他选项都需要在置备主机时保留可用空间。使用 root 文件系统卷组中剩余的可用空间会导致一些应用程序出现问题,例如 Red Hat Mobile Application Platform(RHMAP)。
使用以下三个选项之一创建 docker-pool 卷:
使用附加块设备:
在 /etc/sysconfig/docker-storage-setup 中,将 DEVS 设置为要使用的块设备的路径。将 VG 设置为要创建的卷组名称,如 docker-vg。例如:
cat <<EOF > /etc/sysconfig/docker-storage-setup DEVS=/dev/vdc VG=docker-vg EOF
# cat <<EOF > /etc/sysconfig/docker-storage-setup DEVS=/dev/vdc VG=docker-vg EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 docker-storage-setup 并查看输出以确保创建 docker-pool 卷:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用现有的、指定的卷组:
在 /etc/sysconfig/docker-storage-setup 中,将 VG 设置为卷组。例如:
cat <<EOF > /etc/sysconfig/docker-storage-setup VG=docker-vg EOF
# cat <<EOF > /etc/sysconfig/docker-storage-setup VG=docker-vg EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 然后运行 docker-storage-setup 并查看输出以确保创建 docker-pool 卷:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用您的根文件系统所在卷组中的剩余空间:
验证 root 文件系统所在的卷组是否有所需可用空间,然后运行 docker-storage-setup 并查看输出以确保创建了 docker-pool 卷:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证您的配置。确认 /etc/sysconfig/docker-storage 文件有 dm.thinpooldev 和 docker-pool 逻辑卷值:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要在使用 Docker 或 OpenShift Container Platform 前,请验证 docker-pool 逻辑卷是否足够大,以满足您的需要。使 docker-pool 卷 60% 成为可用卷组,它将通过 LVM 监控来充满卷组。
启动或重启 Docker。
如果 Docker 从未在主机上运行,请启用并启动该服务,然后验证它是否正在运行:
systemctl enable docker systemctl start docker systemctl is-active docker
# systemctl enable docker # systemctl start docker # systemctl is-active docker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 Docker 已在运行:
重新初始化 Docker:
警告这将破坏当前主机上的所有容器或镜像。
systemctl stop docker rm -rf /var/lib/docker/* systemctl restart docker
# systemctl stop docker # rm -rf /var/lib/docker/* # systemctl restart docker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 删除 /var/lib/docker/ 目录中的所有内容。