Я не могу запустить Java в контейнере Docker на моем сервере. Даже при выдаче java -version
я получаю следующую ошибку.
[email protected]:/# java -version
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000035ce1000000, 2555904, 1) failed; error='Operation not permitted' (errno=1)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2555904 bytes for committing reserved memory.
# An error report file with more information is saved as:
# //hs_err_pid17.log
В соответствии с этим, Java не может сопоставить 2,5 МБ пространства для зарезервированной памяти? Это не кажется правильным...
В конце я включил полный журнал, но ради какой-то дополнительной информации моя система сообщает следующее:
[email protected]:/# uname -m
x86_64
[email protected]:/# free -mh
total used free shared buffers cached
Mem: 15G 9.7G 5.8G 912K 148M 8.9G
-/+ buffers/cache: 639M 14G
Swap: 15G 0B 15G
Кто-нибудь может указать мне правильное направление?
Полный журнал: https://gist.github.com/KayoticSully/e206c44681ce261674ba
Обновление
@Йоберт прибил проблему, и я настоятельно рекомендую вам прочитать комментарии и журнал чата. Хорошая информация там.
Для тех, кому нужна последняя команда, которая сделала Java работающим: setfattr -n user.pax.flags -v "mr" /usr/bin/java
Если в вашем дистрибутиве по умолчанию не установлен setfattr
, его следует включить в установочный пакет attr через paceman, apt-get и т.д.