Py学习  »  docker

如何在Manjaro上解决Docker错误代码139?

qwertzuiop • 6 年前 • 1977 次点击  

我最近在我的电脑上安装了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

知道我为什么会犯这个错误吗?知道怎么解决吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40968
文章 [ 3 ]  |  最新文章 6 年前
qwertzuiop
Reply   •   1 楼
qwertzuiop    7 年前

终于成功了。

我不得不将内核更新到最新版本(从4.19.16-1到4.20.3-1)。 但我不知道为什么。

Exadra37
Reply   •   2 楼
Exadra37    7 年前

这可能与计算机的内核版本有关,如 this issue :

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

尝试从 this comment :

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

grub_cmdline_linux_default=“vsyscall=emulate”

如果它能帮你解决问题,请告诉我们。

ionenorch
Reply   •   3 楼
ionenorch    7 年前

据我所知,错误139是由具有内存保护的硬件引起的分段错误。它告诉您您的程序正在试图访问内存的一个限制区域。 可能您试图访问只读内存,在代码中的任何地方取消对空指针的引用,或者产生堆栈溢出。