gpt4 book ai didi

.net - 更改 Docker 容器中的 inotify.max_user_instances 限制

转载 作者:行者123 更新时间:2023-12-03 07:54:09 29 4
gpt4 key购买 nike

我正在尝试在 Dockerfile 级别更改 docker env 的 inotify.max_user_instances 设置。我正在尝试这样做,因为我收到此错误:

应用程序启动异常:System.IO.IOException: 配置的用户
已达到 inotify 实例数量的限制 (128)。

我已经在使用:

 .AddJsonFile($"appsettings.json", optional: true, reloadOnChange: false);

我也尝试使用自定义“WebHost.CreateDefaultBuilder(args)”,因为有人指出它对同一文件使用 reloadOnChange: true 。

也尝试在 dockerfile 中运行:
RUN sysctl -w fs.inotify.max_user_watches=1048576
RUN echo fs.inotify.max_user_watches=1048576 | tee -a /etc/sysctl.conf && sysctl -p

但有人指出,不可能脱离这种背景。

是否有可能从 docker 镜像构建/部署阶段更改这些 sysctl 设置?我有点迷失于此。

如果有帮助,应用程序正在使用 .net core 2.2

最佳答案

Is there possibility to change those sysctl settings from the stage of docker image build



不。镜像构建的输出只是一个文件系统镜像,加上一些关于默认环境变量和命令的元数据,当你 docker run图片。它不包括正在运行的进程、sysctl 值或其他任何内容。

请记住,sysctl 设置通常是全局内核级设置;由于所有 Docker 容器共享主机的内核,因此它们通常共享相同的 sysctl 值。 (由于容器通常也具有隔离的文件系统,因此通过 inotify 监视文件系统更改并不是一个常见的用例;如果代码或其他图像上下文发生实质性更改,则更常见的是重建图像然后删除并重新创建容器。)

您可以通过 docker run --sysctl 更改一组有限的值但这些不包括 inotify 值。更改此值的唯一方法是运行 sysctl ,作为 root,在主机上,在 Docker 之外。

关于.net - 更改 Docker 容器中的 inotify.max_user_instances 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57220658/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com