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,在每个节点主机上执行以下步骤:

  1. 安装 docker-novolume-plugin 软件包:

    $ yum install docker-novolume-plugin
  2. 启用并启动 docker-novolume-plugin 服务:

    $ systemctl enable docker-novolume-plugin
    $ systemctl start docker-novolume-plugin
  3. 编辑 /etc/sysconfig/docker 文件并在 OPTIONS 列表中附加以下内容:

    --authorization-plugin=docker-novolume-plugin
  4. 重启 docker 服务:

    $ systemctl restart docker

启用此插件后,定义了本地卷的容器无法启动并显示以下错误消息:

runContainer: API error (500): authorization denied by plugin
docker-novolume-plugin: volumes are not allowed
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.