Tag: ulimit

为单个用户限制docker容器的资源

对于docker集装箱,您可以在docker run设置CPU限制(例如–cpu-quota –cpu-shares )和内存限制( –memory )。 也可以通过–ulimit设置用户的全局nproc限制。 假设两个不同的用户正在一个容器中运行工作负载。 有没有一种方法来为一个特定的docker集装箱内的个人用户(而不是系统全局)设置限制? 例如,使用–ulimit nproc=100 ,不可能指定允许用户在–ulimit nproc=100容器内运行最多n个进程。 例如,如果用户已经在容器外运行了40个进程,则允许他在容器内运行60个进程。 如果你设置ulimit nproc=40并且有40个进程在容器外面运行,他将不被允许在容器内启动一个新的进程。 所以我正在寻找一种方法来强制CPU,内存和进程号码限制在一个单独的docker容器的用户基础上(即使没有这些限制的其他docker容器在同一个系统上运行)。 为每个用户启动泊坞窗容器不是一个选项。

如何限制单个docker集装箱的工艺编号

需求: 每个用户都有一个单独的容器,目标是限制容器内的进程数量。 不同的容器不能共享可用的进程数量。 官方文档提供的解决scheme是使用–ulimit标志 docker run -d -u daemon –ulimit nproc=3 busybox top 此方法需要在容器中存在帐户,这意味着该帐户或者需要在Dockfile中创build,或者由入口点脚本dynamic添加。 解决方法: 在容器中,添加具有指定uid的用户和/etc/security/limits.conf中的nproc限制。 当切换到新添加的用户时,通过input命令ulimit -a,最大用户进程已经生效 testing: 在上一个容器中使用bash叉炸弹进行testing后,主机和其他容器不会受到发出的容器的影响。 题: 我的问题是上述解决方法似乎棘手,它依靠脚本来dynamic添加用户,并要求唯一的uid(可以通过在原始的uid上添加一个偏移来保证) 顺便说一下,在某些情况下,用户容器可能被重新安排到其他主机。 我想知道是否有更优雅或正式推荐的方式来满足这一需求。

清漆错误:无法打开(任何)接受套接字

我试图重新启动在vagrant容器清漆服务sudo /etc/init.d/varnish restart ,它会引发这些错误: /etc/init.d/varnish: 36: ulimit: error setting limit (Operation not permitted) /etc/init.d/varnish: 36: ulimit: error setting limit (Operation not permitted) [FAIL] Stopping HTTP accelerator: varnishd failed! /etc/init.d/varnish: 36: ulimit: error setting limit (Operation not permitted) [FAIL] Starting HTTP accelerator: varnishd failed! bind(): Address already in use bind(): Address already in use bind(): Address […]

在docker运行中,如何在–ulimit中设置多值

$ sudo docker run –ulimit fsize = 10240 cpu = 12 -it ubuntu / bin / bash docker: parsing引用时出错:“cpu = 12”不是有效的repository /标签。 参见“docker运行 – 帮助”。 $ sudo docker run –ulimit fsize = 10240 –ulimit cpu = 12 -it ubuntu / bin / bash root @ ea4b00375adf:/#ulimit -a核心文件大小(blocks,-c)0 data seg size(kbytes,-d (-e)0文件大小(块,-f)10个未决信号(-i)5903最大locking内存(kbytes,-1)64最大内存大小(kbytes,-m)无限打开文件(-n) )524288pipe道大小(512字节,-p)8 POSIX消息队列(字节,-q)819200实时优先级(-r)0堆栈大小(千字节,-s)8192 cpu时间(秒,-t)12 max用户进程(-u)524288虚拟内存(kbytes,-v)无限制文件locking(-x)无限制 […]

docker集装箱内不能减lessulimits

我想在docker容器中使用ulimit -f来减less限制。 (我强调这个问题的答案很多,这涉及到越来越多的限制)。 我有一个脚本,写一个10K文件,并报告成功: $ perl examples/largefile.pl Begin End 我可以防止它运行到完成,如预期的那样,用ulimit -f : $ ( ulimit -f 5 ; perl examples/largefile.pl ) Begin 不幸的是,在一个cocker容器中, ulimit -f命令似乎没有效果: $ sudo docker run –rm -i -t -u 1001 -v $PWD:$PWD safe-docker bash user@08aba80ebaff:/$ cd … user@08aba80ebaff:/…$ examples/largefile.pl Begin End user@08aba80ebaff:/…$ ( ulimit -f 5 ; perl examples/largefile.pl ) Begin […]

如何在Docker容器中设置核心文件大小?

我想在Docker容器中将核心文件大小设置为无限制。 我试图在容器中更改limits.conf 。 Dockerfile RUN sed -i.bak '/\# End of file/ i\\* soft core unlimited' /etc/security/limits.conf RUN sed -i.bak '/\# End of file/ i\\* hard core unlimited' /etc/security/limits.conf 我重新启动容器,但没有奏效。 核心文件大小始终为0。 我可以使用该命令 $ ulimit -c unlimited 用于设置核心文件大小。 但是我必须使用另一个应用程序的命令。 所以我不要我们这些命令。 请让我知道如何在Docker容器中更改核心文件大小。

Docker容器不会从主机inheritanceulimit

我已经在这里读到docker容器从主机inheritanceulimit属性。 这似乎不会发生我的容器。 特别是,我需要max locked memory属性从主机inheritance。 有谁知道如何修理它? ubuntu@host:~$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 31404 max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 50000 pipe size (512 bytes, -p) […]

在docker运行–ulimit cpu = 10在某些情况下不起作用

我有一个奇怪的问题使用–ulimit cpu=10 。 我想确保在使用CPU 10秒之后进程被终止。 当java进程被直接调用的时候会失败,但是当它被第一次运行的时候调用它就可以了。 这工作正常。过程10s后死亡 docker run –rm -i -v /usr/local/src:/classes –ulimit cpu=10 java:8 \ bash -c 'java -cp /classes/ InfiniteLoop' 但是这不是。 docker run –rm -i -v /usr/local/src:/classes –ulimit cpu=10 java:8 \ java -cp /classes/ InfiniteLoop 任何想法如何解决这个问题?

在Docker中运行Lightttpd:ulimits not honored

我正在尝试在Docker容器中运行lighttpd(1.4.35),以便为大容量静态网站(无PHP等)提供服务。 运行一分钟后,错误日志将填充: (server.c.1444)[note]套接字被禁用,达到连接限制 我已经在/etc/security/limits.conf (并重新启动)中提高了root的限制: root soft nofile 4096 root hard nofile 32768 在我docker-compose.yml (相当于命令行中的–ulimit ): ulimits: nofile: soft: 4096 hard: 32768 在我的lighttpd.conf : server.max-fds = 8192 server.max-connections = 4096 但是当我运行lsof -n | grep -c lighttpd lsof -n | grep -c lighttpd我得到不高于128.如果我进入容器并运行ulimit -n我得到4096,如预期的那样。 运行ulimit -a返回: core file size (blocks, -c) unlimited data seg size (kbytes, […]

未能在docker容器中设置ulimit

我已经提交了一个新的用户调用“用户”Ubuntu的形象,然后我用下面的命令创build容器 sudo docker run -u=user -ti test1 /bin/bash 我检查只有两个进程正在运行 user@1bc12c468f29:/$ ps PID TTY TIME CMD 1 ? 00:00:00 bash 12 ? 00:00:00 ps 但是,我设置后 ulimit -u 10 我不能创build任何新的进程,即使是ls user@1bc12c468f29:/$ ulimit -u 10 user@1bc12c468f29:/$ ls bash: fork: retry: No child processes bash: fork: retry: No child processes bash: fork: retry: No child processes bash: fork: retry: […]