docker-compose设置容器中sysctl(容器中执行sysctl -p报错 sysctl: error setting key ‘xxx‘: Read-only file system)
文章目录
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
- 不推荐原因:
- 重启就没了
- 容器获得了过高的权限
posted on 2023-03-01 08:48 运维开发玄德公 阅读(448) 评论(0) 编辑 收藏 举报 来源
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了