我一直在尝试使用Docker几天。我正在使用Drupal图像(docker4drupal),它基本上包含MySQL(MariaDB),PHP(php-fpm)和NGINX。
几乎每次我对数据库容器进行数据库导入时,在具有512MB RAM的VPS上,使用MariaDB的容器都会死...并且出现“MySQL服务器已经消失”等消息......这不会发生在我的VPS有1GB或2GB RAM。
所以,这似乎是一个记忆问题,但我需要证据!我不知道日志在哪里告诉我我的容器因为内存不足而死了。
我检查了MariaDB日志,但我找不到任何东西......它的日志只是说“数据库没有正常关闭”,而是“它正在启动”,然后“关闭连接”......
因此,独立于我的MariaDB配置(不适用于512MB VPS)...我在哪里可以明确找到数据库服务器容器为何死亡的原因?
欢迎任何帮助。 非常感谢。
PD:我从PHP容器中执行mysql cli,这就是为什么尽管数据库容器死了,我仍然可以看到输出错误的地方。答案 0 :(得分:3)
可能是内核在'内存不足'事件中终止大多数占用内存的进程。主机系统日志中可能存在某些条目。但是缺少这样的条目并不能保证不是内核会杀死你的数据库。
确切的文件名取决于主机系统配置(在您的情况下意味着VPS)。可以是/var/log/{system.log,error.log, ...}。
只要docker容器不是隔离的VM而是内核驱动的cgroup上的包装器,内核事件就由主机系统loggin守护进程处理
答案 1 :(得分:1)
您好Beto我们可以在以下命令中查看docker checkout中的日志:
docker logs --follow命令将继续从容器的STDOUT和STDERR流式传输新输出。
答案 2 :(得分:0)
这可能太过于无法填补一个小小的512MB。做其中一个
你有几张桌子?希望不是很多,如https://dba.stackexchange.com/questions/60888/mysql-runs-out-of-memory-when-importing-innodb-database