現象:
操作系統:centos 7.2 kernel 3.10.0-327.el7.x86_64
mesos:1.3.0
docker:docker-17.06.0-ce
在做mesos驗證時,通過marathon下發容器,發現在多個mesos-slave節點上下發容器均以失敗告終。
marathon:
mesos:
分析:
#在任意1個mesos節點上查看docker下發容器的信息 [root@mesos-node1 ~]# docker ps -a
#再查看每個下發失敗的容器的信息,如id為“36f9211279a1”的容器 [root@mesos-node1 ~]# docker inspect container 36f9211279a1
報錯信息:"Error": "oci runtime error: container_linux.go:262: starting container process caused \"process_linux.go:339: container init caused \\\"\\\"\"\n",
原因:
google相關報錯,https://github.com/moby/moby/issues/34046 給出了答案:
docker-17.06.0-ce部署在centos7.2( kernel :3.10.0-327.el7.x86_64) 時,針對上述情況有1個bug,下發容器指定內存時(matathon下發容器指定了內存)時會觸發此bug。
驗證:
#不指定內存 [root@mesos-node1 ~]# docker run -itd --name test1 nginx #指定內存,報錯復現 [root@mesos-node1 ~]# docker run -itd --name test2 -m 20m nginx #查看容器狀態 [root@mesos-node1 ~]# docker ps -a
解決方案:
github上已給出解決方案:This should be cleared up if you update to the latest patch level (-514). Alternatively we will also be releasing a fix with 17.06.1 (docker/docker-ce#102)