Я столкнулся с "статусом выхода 34" при создании службы докеров. пожалуйста, подскажите, в чем проблема.
Версия Docker: версия Docker 17.09.1-ce, сборка 19e2cf6 Журнал ошибок: nsenter: не удалось отменить совместное использование пространств имен: Невозможно выделить память container_linux.go: 265: запуск процесса контейнера вызвал "process_linux.go: 270: запуск процесса exec setns для init вызвал \ "статус выхода 34 \" «ОШИБКА: сервис 'web' не удалось построить: ошибка времени выполнения oci: container_linux.go: 265: запуск процесса контейнера вызвал" process_linux.go: 270: запуск процесса exec setns для init вызвал \ "статус выхода 34 \ ""
Мы видели аналогичную ошибку. «nsenter: не удалось отменить совместное использование пространств имен: невозможно выделить память».
По моему опыту, это было напрямую связано с памятью, а в нашем случае - с подкачкой. У нас достаточно мало места для подкачки, но наша операционная система Red Hat все еще его использовала. Мы нашли два действия, которые, кажется, помогают.
Увеличение ОЗУ на нашем хосте, чтобы иметь достаточно накладных расходов, когда это препятствует использованию RHEL подкачки. Это неплохой вариант, если у вас есть возможность добавить RAM.
Мы следовали этому документу, и это помогло. Однако вам нужно будет провести некоторый анализ того, подходит ли это вам. Как только вы сделаете это изменение, вы будете использовать более активный плунжер. Например, у нас есть угловая сборка, в которой использовалось 4 ГБ ОЗУ и 2 ГБ подкачки. После этого изменения все 6 ГБ были в ОЗУ. Поэтому, если вы выберете этот метод, вам нужно будет быть осторожным, чтобы в конечном итоге вы не использовали всю свою оперативную память и не заставили ОС использовать подкачку для критически важной работы.
https://success.docker.com/article/node-using-swap-memory-instead-of-host-memory
Я тоже столкнулся с этой проблемой.
Вот что я нашел:
Может быть ошибка ядра (v <3.10.x), исправленная в патче, поэтому обновление ядра должно исправить это:
https://github.com/opencontainers/runc/issues/1513
https://bugzilla.redhat.com/show_bug.cgi?id=1499046
Патч RHEL: https://bugzilla.redhat.com/show_bug.cgi?id=1499046
Может быть проблема с конфигурацией RHEL: https://success.docker.com/article/user-namespace-runtime-error
$ grubby --args="namespace.unpriv_enable=1 user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
$ echo "user.max_user_namespaces=15000" >> /etc/sysctl.conf
$ reboot
Возможно, пространство имен пользователя не включено: https://github.com/moby/moby/issues/34011
grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-
ядро) "
Этот скрипт может помочь выявить пробелы в конфигурации на хосте: https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh
У меня есть ситуация, когда клиент сообщает, что хосты были запущены, и после какого-то неизвестного обновления он перестает работать. Я все еще ищу внятное объяснение. Я обновлю, когда исправлю.