Вы можете установить ограничения для контейнера при запуске Docker с помощью флага --ulimit
.
docker run --ulimit core=<size>...
Обратите внимание, что "unlimited" не является поддерживаемым значением, поскольку на самом деле это не реальное значение, но -1 эквивалентно ему:
$ docker run -it --ulimit core=-1 ubuntu:18.04 sh -c 'ulimit -a | grep core'
coredump(blocks) unlimited
В Linux предел RLIMIT_CORE
(, см. setrlimit(2)
справочную страницу ), выражается в байтах. В то время как для ulimit
из bash
и большинства других оболочек это выражается в кибибайтах.
Максимальное значение для RLIMIT_CORE
в байтах, которое вы можете передать в setrlimit()
в Linux, будет наибольшим 64-битным целым числом без знака (18446744073709551615 ), имея в виду, что на самом деле это специальное значение для RLIM_INFINITY
, максимум, который вы можете передать в bash ulimit
, будет равен 1024, 18014398509481983, но тогда это не установит ограничение на RLIMIT_INFINITY
, поскольку 18014398509481983 * 1024
равно 18446744073709550592, что на 1023 меньше RLIM_INFINITY
.