Выполнение команды через докер, похоже, не соответствует моим текущим настроенным ulimit
s:
$ ulimit -t 5 ~ $ sudo -- bash -c "ulimit -t" 5 ~ $ sudo -- docker run --rm debian:wheezy bash -c "ulimit -t" unlimited
Как я могу это сделать?
Выполнение команды через докер, похоже, не соответствует моим текущим настроенным ulimit
s:
$ ulimit -t 5 ~ $ sudo -- bash -c "ulimit -t" 5 ~ $ sudo -- docker run --rm debian:wheezy bash -c "ulimit -t" unlimited
Как я могу это сделать?
Вы можете установить глобальные ограничения в конфигурации демона Docker. В Ubuntu этим управляет Upstart. Добавьте limit cpu <softlimit> <hardlimit>
в /etc/init/docker.conf
и перезапустите демон.
Для каждого контейнера необходимо использовать флаг --privileged
с docker run
, чтобы установить ulimits. AFAIK нет возможности сделать это без --privileged
.
См. Также Ограничения времени выполнения для ЦП и памяти .
--privileged
- person Ben Whaley; 10.09.2014
В настоящее время (v1.5.0) эти ограничения унаследованы от ограничений демона докеров. Но команда docker собирается выпустить ограничения для контейнеров.
Для обходного пути вы можете установить ограничения внутри контейнера, например
# docker run ubuntu bash -c "ulimit -t 5; doSomething"