docker-compose设置容器中sysctl(容器中执行sysctl -p报错 sysctl: error setting key ‘xxx‘: Read-only file system)

  • 时间:2025-10-27 23:12 作者: 来源: 阅读:3
  • 扫一扫,手机访问
摘要:1. 错误描述 需求:修改容器可用端口范围 操作:将容器的/etc/sysctl.conf 文件挂载出来,并配置可用端口范围 net.ipv4.ip_local_port_range = 1024 65535 报错 端口范围的配置并没有生效。进入容器,发现文件被正常挂载了。于是手动执行一下,报错如下: bash-5.0$ sudo sysctl -

1. 错误描述

  • 需求:修改容器可用端口范围

  • 操作:将容器的/etc/sysctl.conf 文件挂载出来,并配置可用端口范围

net.ipv4.ip_local_port_range = 1024 65535

  • 报错
    端口范围的配置并没有生效。进入容器,发现文件被正常挂载了。于是手动执行一下,报错如下:

bash-5.0$ sudo sysctl -p
sysctl: error setting key  net.ipv4.ip_local_port_range : Read-only file system
sysctl: error setting key  fs.file-max : Read-only file system
sysctl: error setting key  fs.nr_open : Read-only file system

2. 缘由

docker 限制了对容器中 /proc/sys 的访问

3. 解决(推荐)

docker-compose 加入了sysctls选项来解决这个问题

  emqx:
    image: "emqx/emqx:4.3.11"
    sysctls:
     - net.ipv4.ip_local_port_range=1024 65535

*另一个方法(不推荐)

用特权模式启动

  • 修改docker-compose.yml 文件

version: "3.1"
services:
 emqx:
   image: "emqx/emqx:4.3.11"
   privileged: true #加入这一行

  • 启动容器后,在容器中执行:

sysctl -p

  • 不推荐缘由:

    • 重启就没了

    • 容器获得了过高的权限





docker-compose设置容器中sysctl(容器中执行sysctl -p报错 sysctl: error setting key ‘xxx‘: Read-only file system)

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】在Qt中如何设置窗体的背景图片(2025-10-29 20:27)
【系统环境|】无声无名 | 杨·罗威斯终身回顾展(2025-10-29 20:26)
【系统环境|】从零开始学Qt(22):QSS详解(3)- 盒子模型(2025-10-29 20:25)
【系统环境|】Quarkus vs Spring Boot 集成 RabbitMQ 谁更香?(2025-10-29 20:24)
【系统环境|】RabbitMQ相关概念及代码示例(2025-10-29 20:24)
【系统环境|】Spring Boot + RabbitMQ:轻松掌握五种基本工作模式(2025-10-29 20:23)
【系统环境|】一篇文章带你彻底玩转-RabbitMQ(2025-10-29 20:22)
【系统环境|】私有云平台搭建——史上最详细(2025-10-29 20:21)
【系统环境|】RabbitMQ最全详解(万字图文总结)(2025-10-29 20:20)
【系统环境|】.Net/C#全网最火RabbitMQ操作【强烈推荐】(2025-10-29 20:20)
手机二维码手机访问领取大礼包
返回顶部