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

nat*_*002 17 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
Run Code Online (Sandbox Code Playgroud)

谢谢!

Eug*_*ota 28

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

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

Docker for Mac入门说:

高级

高级设置是:

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

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

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

  • 我认为这应该是公认的答案。“Killed”消息毫无帮助,基本上是 docker 中的一个错误。 (2认同)

And*_*inn 7

使用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
Run Code Online (Sandbox Code Playgroud)

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

  • 仅使用`--privileged` 标志就可以让我使用`dmesg` 实用程序。 (2认同)

Raf*_*les 6

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

这对我有用