3.9.7. 阻塞使用本地卷
当使用 Dockerfile 中的 VOLUME
指令置备卷或使用 docker run -v <volumename>
命令时,会使用主机的存储空间。使用这个存储会导致意外地出现存储空间的问题,并可能导致主机关闭。
在 OpenShift Container Platform 中,试图运行自己的镜像可能会导致占用完节点主机上的所有存储空间。解决这个问题的一种方法是防止用户使用卷运行镜像。这样,用户唯一可以访问的存储会被限制,集群管理员可以分配存储配额。
使用 docker-novolume-plugin 可通过禁止使用定义的本地卷启动容器来解决这个问题。特别是,插件块 docker run
命令包含以下内容:
-
--volumes-from
选项 -
定义了
VOLUME
的镜像 -
对已存在的、由
docker volume
命令置备的卷的引用
该插件不会阻止对绑定挂载的引用。
要启用 docker-novolume-plugin,在每个节点主机上执行以下步骤:
安装 docker-novolume-plugin 软件包:
$ yum install docker-novolume-plugin
启用并启动 docker-novolume-plugin 服务:
$ systemctl enable docker-novolume-plugin $ systemctl start docker-novolume-plugin
编辑 /etc/sysconfig/docker 文件并在
OPTIONS
列表中附加以下内容:--authorization-plugin=docker-novolume-plugin
重启 docker 服务:
$ systemctl restart docker
启用此插件后,定义了本地卷的容器无法启动并显示以下错误消息:
runContainer: API error (500): authorization denied by plugin docker-novolume-plugin: volumes are not allowed