云网牛站
所在位置:首页 > Linux教程 > 升级到Deepin V20后Docker容器启动提示exited(139)的解决方法

升级到Deepin V20后Docker容器启动提示exited(139)的解决方法

2020-08-08 10:43:56作者:gmaso稿源:深度站

有深度用户从Deepin 15.11升级到Deepin V20操作系统后,就出现了Docker容器启动提示exited(139)的问题,在没有升级系统之前是可以正常运行的,如果有类似问题的网友可采用以下方法解决。

 

原因分析

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

如果Docker镜像中的glibc版本低于2.14版本,在新Linux内核情况下就可能造成分段错误。

升级到Deepin V20后Docker容器启动提示exited(139)的解决方法

Docker安装参考:在深度Deepin v20系统中用阿里云仓库安装Docker的方法

 

解决方法

在Deepin V20系统中进入/etc/default/grub,然后修改此命令(空格后添加):

grub_cmdline_linux_default=“splash quiet vsyscall=emulate”

注:请在修改前进行文件备份。

然后运行sudo update-grup命令,再重启Deepin V20系统,这时Docker容器应该可以正常运行了。

 

注意事项

容器正常启动后,进入容器把glibc升级到2.14或以上,然后把grub中vsyscall的修改还原,因为设置为emulate会造成性能损失。

 

相关主题

Deepin v20下用apt install docker-ce不能成功安装docker的解决

精选文章
热门文章