首页 > 解决方案 > 如何解决 Manjaro 上的 Docker 错误代码 139?

问题描述

我最近在我的电脑上安装了 Manjaro,我正在做一些测试。我尝试构建和启动一个在 Windows、Mac Os、Ubuntu 等上完美运行的 Docker。

但是当我运行时,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

知道为什么我会收到此错误或如何解决它吗?

标签: dockerdocker-composemanjaro

解决方案


这可能与您计算机的内核版本有关,如本期报道:

这可能与 4.11 内核中 vsyscall 链接的变化有关。尝试使用 vsyscall=emulate 引导内核,看看是否有帮助。这在 linuxkit 4.11 内核配置下运行正常,没有问题,所以它与配置有关。

尝试从此评论中实施解决方案:

嗨,在 /etc/default/grub 中指定此命令:

GRUB_CMDLINE_LINUX_DEFAULT="vsyscall=emulate"

让我们知道它是否可以为您解决问题。


推荐阅读