Centos – Running a CentOS Docker Image on Arch Linux exits with code 139

arch linuxcentosdocker

I am trying to run a CentOS Docker Image on my Arch Linux host. Running the following command returns nothing except the 139 error code:

$ docker run -ti centos:centos6 /bin/bash                                                                                                                                
[139] $  

I have the CentOS Docker image:

centos              centos6             0cbf37812bff        2 weeks ago         194MB

and a centOS container is there under the list of containers

$ docker ps -a|grep cento                                                                                                                                                
2ef0f0d7439c        centos:centos6         "/bin/bash"              5 minutes ago       Exited (139) 5 minutes ago                       elated_turing

Docker logs also returns nothing:

$ docker logs <container id>
$

I have tried using other Docker images and they work, it only seems to affect the CentOS image but I need to use centOS for my work.

Best Answer

They were changes made on vsyscall linking in the Linux Kernel, starting with version 4.11, that caused issues with containers running Centos 6.x

2 solutions :

  • Use a 7.x Centos image
  • Try to boot the kernel with the parameter vsyscall=emulate

Example with GRUB, modify /etc/default/grub :

GRUB_CMDLINE_LINUX_DEFAULT="vsyscall=emulate"

And then run update-grub

Example with systemd-boot, modify your conf in /boot/loader/entries and add the parameter to the options line :

title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options *EXISTINGPARAMS* vsyscall=emulate
Related Question