mysql的docker容器经常崩溃

我正在使用mariadb和wordpress容器。 但是这个错误不断发生。 我怎样才能确保这个崩溃不再发生? 我被攻击了吗? 还是这是其他人发生的问题? 我怎样才能连接到mariadb,并有机会获得壳,并试图找出在mariadb容器里面发生了什么?

看到下面每个崩溃后logging的消息…似乎也有大量的页面点击。 页面上的访问量可以达到20,000到60,000次。 这些似乎是爬虫,机器人的工作。 不知道这些是否是恶意攻击。

有关如何处理这个问题的任何帮助?

我有mariadb,wordpress和phpmyadmin工作在三个docker集装箱下的数字海洋ubuntu 14。 这里是崩溃消息:

[1668002.926214]内存不足:杀死进程16765(mysqld)得分176或牺牲子女[1668002.935614]杀死进程16765(mysqld)total-vm:1012836kb,anon-rss:178840kb,file-rss:0kb [1668040.99241515]杀死进程22570 (php5-fpm)total-vm:418044kB,anon-rss:145392kB,file-rss:20624kB

杀死进程3161(mysqld)得分245或牺牲subprocess[1225007.985657]杀死进程3161(mysqld)total-vm:977148kb,anon-rss:122488kb,file-rss:0kB)

法兰克福服务器[1632264.057873]内存不足:杀死进程22421(mysqld)得分246或牺牲子女[1632264.067530]杀死进程22421(mysqld)total-vm:1005228kb,anon-rss:249328kb,file-rss:0kb

Docker Hub上的官方MySQL镜像使用MySQL推荐的configuration。 基本上,默认configuration是针对性能进行调整的,旨在用于在专用服务器上运行MySQL,并具有大量内存(多个千兆字节)。

根据您的要求和可用资源调整MySQL设置

在小型DigitalOcean液滴(512MB,1GB)的容器中运行MySQL时,您将不得不修改默认设置以适应您的情况。 例如; 限制同时连接的最大数量,减less查询caching等

另外请注意,默认情况下,DigitalOcean液滴没有configuration交换,这意味着如果内存不足,则无法使用SSD进行交换。 在这些水滴上configurationSwap非常重要,这样,如果临时需要更多的内存(例如,重新构build数据库),MySQL不会崩溃。

本文介绍如何在DigitalOcean上的Ubuntu 14.04上configurationSwap分区; 如何在Ubuntu 14.04上添加交换

官方MySQL Docker存储库中的以下问题包含了一些提示,以便为“性能”或“内存效率”调整MySQL设置;

  • 运行后mysql立即停止
  • MySQL容器几乎每天都在崩溃

Docker Hub上的MySQL自述文件介绍了如何使用自定义configuration文件; “使用自定义MySQLconfiguration文件”