Docker容器,内存消耗和日志

我一直在尝试Docker几天。 我使用的是基本上包含MySQL(MariaDB),PHP(php-fpm)和NGINX的Drupal镜像(docker4drupal)。

几乎每次我把数据库导入到数据库容器,在一个512MB RAM的VPS上,MariaDB的容器就会死掉,而像“MySQL服务器已经消失”这样的消息出现了……当我的VPS有1GB或2GB内存。

所以,这似乎是一个记忆问题,但我需要证据! 我不知道日志在哪里告诉我,我的容器因为内存不足而死亡。

我检查MariaDB日志,但我找不到任何东西…它只是说日志,像“数据库不正常关机”,并且“开始”,然后“wating连接”…

所以,独立于我的MariaDBconfiguration(这是不适合的512MB VPS)…我在哪里可以明确地find为什么容器与数据库服务器死亡的原因?

任何帮助是受欢迎的。 非常感谢。

PD:我从PHP容器执行mysql cli,这就是为什么尽pipe数据库容器死亡,我仍然可以看到输出发生了错误。

可能是内核在“内存不足”事件中终止了大部分耗费内存的进程。 主机系统日志中可能有一些条目。 尽pipe如此缺乏这样的条目并不能保证它不是杀死你的数据库的内核。

确切的文件名取决于主机系统configuration(意思是VPS,在你的情况下)。 可以是/var/log/{system.log,error.log,…}。

只要docker容器不是一个独立的虚拟机,而是一个内核驱动的cgroups的包装器,内核事件由主机系统loggin守护进程

嗨,贝托,我们可以看到docker checkout下面的命令中的日志:

docker logs –follow命令将继续从容器的STDOUT和STDERRstream式传输新的输出。

这可能是太多的东西在一个微不足道的512MB。 做一个

  • 增加RAM可用。 (“这不会发生,当我的VPS有1GB”)
  • 跨多个小型Docker分割应用程序。
  • 调整每个应用程序以使用更less的RAM。 (我最近没有回答你的问题吗?)

你有几张桌子? 希望不是很多,如在https://dba.stackexchange.com/questions/60888/mysql-runs-out-of-memory-when-importing-innodb-database