Как решить код ошибки Docker 139 на Манджаро?

Я недавно установил Manjaro на свой компьютер, и я делаю несколько тестов. Я пытался собрать и запустить Docker, который отлично работает на Windows, Mac Os, Ubuntu и т. Д.

Но когда я бегу sudo docker-compose up Я получаю ошибку. Кажется, все работает нормально, кроме в конце:

Successfully built d72aa4c69ad6
Successfully tagged code_interface:latest
WARNING: Image for service interface was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating code_db_1 ... done
Creating code_web_1 ... done
Creating code_interface_1 ... done
Attaching to code_db_1, code_web_1, code_interface_1
code_db_1 exited with code 139

Вот как выглядит мой docker-compose.yml:

db:
  image: mongo:3.0.2
  ports:
    - "27017:27017"

web:
  build: X
  ports:
    - "5000:5000"
  links:
    - db

interface:
  build: Y
  ports:
    - "8080:8080"
  links:
    - web

Любая идея, почему я получаю эту ошибку или как ее исправить?

3 ответа

Это может быть связано с версией ядра вашего компьютера, как описано в этой проблеме:

Вероятно, это связано с изменениями в связывании vsyscall в ядре 4.11. Попробуйте загрузить ядро ​​с помощью vsyscall=emulate и посмотрите, поможет ли это. Это работает нормально в конфигурации ядра linuxkit 4.11 без проблем, так что это связано с конфигурацией.

Попробуйте реализовать решение из этого комментария:

Привет, указав эту команду в / etc / default / grub:

GRUB_CMDLINE_LINUX_DEFAULT = "vsyscall = эмулировать"

Дайте нам знать, если это решит проблему для вас.

Наконец то заработало.

Мне пришлось обновить свое ядро ​​до последней версии (с 4.19.16-1 до 4.20.3-1). Хотя не знаю почему.

Насколько я знаю, ошибка 139 является ошибкой сегментации, вызванной аппаратным обеспечением с защитой памяти. он говорит вам, что ваша программа пытается получить доступ к ограниченной области памяти. возможно, вы пытаетесь получить доступ к постоянной памяти, получили разыменование нулевого указателя в любом месте вашего кода или произвели переполнение стека.

Другие вопросы по тегам