Docker进程被神秘的“Killed”消息杀死

时间:2017-06-07 15:38:35

标签: python macos docker docker-machine

在docker容器中运行python脚本,一切似乎运行顺利,看到一些STDOUT消息,大约5分钟我收到Killed消息,没有进一步解释,过程停止。查询数据库可能是磁盘空间问题,可能是OOM问题。我不确定,但我不知道在哪里可以找到关于这个kill消息的日志,所以我可以找到这个问题的根源。这些日志有哪些想法?

在Mac OSX上运行docker-machine。

真的是所有信息都说出来了!

root@c7b800e0f276:/opt/mymodule# python
Python 2.7.13 (default, May  1 2017, 22:44:36)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from mymodule import model
>>> model.run('2017-04-01')
INFO:Deleting from input table.
INFO:Inserting into input table.
INFO:Querying input table for chunk.
Killed
root@c7b800e0f276:/opt/mymodule# exit

谢谢!

3 个答案:

答案 0 :(得分:15)

默认情况下,Docker for Mac会将可用资源限制为 2GB !这对我运行的应用来说太低了。我正在尝试的解决方案是将内存限制提高到8GB。

(我有类似的问题,虽然使用JVM应用程序,而不是Python,并通过Google搜索到达此处。从@sergiu删除的答案我能够找出问题。)

Get started with Docker for Mac说:

Advanced

  

高级设置包括:

     

CPU :默认情况下,Docker for Mac设置为使用主机上可用处理器数量的一半。要提高处理能力,请将其设置为更高的数字;减少,减少数量。

     

内存:默认情况下,Docker for Mac设置为使用2 GB运行时内存,从Mac上的总可用内存中分配。要增加RAM,请将其设置为更高的数字;减少它,降低数量。

     

交换:根据需要配置交换文件大小。默认值为1 GB。

答案 1 :(得分:5)

使用Docker for Mac,您可以使用以下命令进入主机VM命名空间:

docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh

然后运行chroot /host将root更改为主机挂载。现在,您可以使用dmesg等实用程序来检查是否有任何OOM消息(例如您的问题的评论建议)。

答案 2 :(得分:0)

发生这种情况是因为您的应用程序正在消耗所有可用的RAM。 您可以监视RAM消耗并增加它。

这对我有用