【问题标题】:Podman memlock limitsPodman 内存锁限制
【发布时间】:2020-09-18 04:52:48
【问题描述】:

我正在评估 Fedora Silverblue 作为我的主要开发操作系统,我将与其他将使用 MacOS 或其他 Linux 发行版的开发人员一起使用它。我需要使用 Docker 容器。

Fedora 附带 Podman 作为管理容器的无根替代方案,它应该具有与 docker 完全相同的界面,因此 alias docker=podman 应该可以工作。

我还安装了podman-compose 以获得docker-compose 的经验,一切都很好,但我正在努力使用以下配置来设置 ELK 堆栈:

version: '3.3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
    container_name: elasticsearch
    ports:
      - 9200:9200
    environment:
      - discovery.type=single-node
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - elastic

  kibana:
    image: docker.elastic.co/kibana/kibana:7.7.0
    container_name: kibana
    ports:
      - 5601:5601
    environment:
      ELASTICSEARCH_URL: http://elasticsearch:9200
      ELASTICSEARCH_HOSTS: http://elasticsearch:9200
    networks:
      - elastic

networks:
  elastic:
    driver: bridge

虽然这适用于 Docker,但由于以下配置,它不适用于 Podman:

ulimits:
  memlock:
    soft: -1
    hard: -1

我知道这适用于 Docker,因为它以高权限运行并且可以将这些限制设置为无限制,但是因为 Podman 是无根的并且我运行 Silverblue,所以无法提高这些限制。

我已经搜索了如何使用 Podman、Silverblue 增加 ulimit,但没有找到。

是否有任何方法可以通过 Podman on Silverblue 增加这些限制,并使此类 docker-compose 设置适用于我的系统?

【问题讨论】:

    标签: fedora podman fedora-silverblue


    【解决方案1】:

    如果您以无根用户身份运行 Podman,则不允许将 ulimit 设置为高于会话当前的值。

    如果您需要设置更高的 ulimit,您要么需要允许您的用户拥有它(调整 /etc/security/limits.conf),要么以 root 身份运行容器。

    【讨论】:

      猜你喜欢
      • 2022-01-03
      • 1970-01-01
      • 2010-09-26
      • 2014-07-16
      • 2011-02-25
      • 2012-01-04
      • 2017-11-29
      • 2016-12-21
      • 2011-07-11
      相关资源
      最近更新 更多