今同事小飞飞遇到一个坑爹的问题,可乐死我了….  我发现他们组docker用的量也不少,但是经常出问题….    这次是无法使用docker -it exec 进入容器。奇怪的是docker的提示是 内存无法分配,我们ps aux看了下docker的后端进程,内存已经用到40G了… …    

[ruifengyun@wx-social-web01 socialx]$ docker exec -it wh-online-deploy bash
Cannot run exec command 7559431b2205817b2405d33cc22339dcf90f9e3a9f8c01b2f93e7562bcf1f279 in container c326f588d91bf77a3234ac0a063543e8b27d69f43934b486593f2a1c2dd33f61: fork/exec /usr/bin/docker: cannot allocate memory Error starting exec command in container                                                                      

docker的版本是1.5                   

[ruifengyun@wx-social-web01 socialx]$ docker -v
Docker version 1.5.0, build a8a31ef/1.5.0

                                                                                                                          

[ruifengyun@wx-social-web01 socialx]$ free -m

             total       used       free     shared    buffers     cached
Mem:         64375      48876      15499          0        505       9739
-/+ buffers/cache:      38631      25744
Swap:            0          0          0

看了下docker的github里的issue,大多数人把overcommit_memory配置成1或者2 .

[ruifengyun@wx-social-web01 socialx]$ cat /proc/sys/vm/overcommit_memory
0
[ruifengyun@wx-social-web01 socialx]$ cat /proc/sys/vm/overcommit_ratio
50

您还可以配置交换空间;在这种情况下,进程不会被杀死,但如果内存使用量增长太多,系统可能会变得反应迟钝。

这虽然在一定程度上保证不死,但是问题是docker为毛占用了40G的内存…   最后的解决方法是,万能重启….


关于 docker cannot allocate memory Error starting exec command in container 的继续探讨…..

7-13,有遇到这jb问题了….. 已经确定其中一个容器里面的应用有个模块有内存泄漏的问题,fix解决…. 

但是让人奇怪的是,从docker主机外面查看内存占用,不会看到具体的进程,只会看到docker进程占用了50g的内存….




对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

docker下计划任务crontab的使用方法[python]

今天聊下在docker怎么合理的使用crontab 。  一直没有注意在docker如何使用crontab计划任务,我曾经已经不能用,所以用的是dockerfile定义的启动脚...

阅读全文

docker运维平台之python解析Dockerfile配置

最近有些想法,出于寂寞… 最近看docker群里不少人在写docker运维平台。 话说,我自己也有些手痒痒了,打算搞一个开源的简单的docker平台。  ...

阅读全文

使用iptables管理docker容器做端口映射网络

昨天写了篇文章是关于docker如何绑定静态的ip,使容器里面的ip是固定的ip地址….  另外关于绑定ip地址,我们也是可以在docker run的时候用 docke...

阅读全文