【问题标题】:Can't run docker containers for Jenkins and MySQL at the same time on EC2无法在 EC2 上同时为 Jenkins 和 MySQL 运行 docker 容器
【发布时间】:2020-07-08 19:28:12
【问题描述】:

我正在测试在 AWS EC2 上设置环境 分别为 Jenkins 和 MySQL 提供两个 docker 容器。

但是当我尝试运行 MySQL 容器时,Jenkins 容器会被杀死。 所以我尝试再次运行 Jenkins docker,但随后 EC2 完全停止了。

我猜这是因为我使用的是免费层一,但谁能解释导致此问题的原因?

非常感谢!

【问题讨论】:

标签: mysql amazon-web-services docker jenkins amazon-ec2


【解决方案1】:

你能分享你用来运行这两个容器的命令或配置文件吗?我怀疑当 Jenkins 容器发生故障和 EC2 实例停止工作时,您遇到的都是巧合。如果 Jenkins 和 Docker 具有相同的容器名称,Docker 将抛出错误。在任何其他情况下,Docker 将简单地创建一个新容器,该容器对另一个容器完全无动于衷和不可知论。

当您说您正在使用免费层时,您的意思是什么? AWS 免费套餐? 使用它不太可能对您的实例上运行的软件产生任何影响。

如果您能提供这些附加信息,我将非常乐意帮助您继续解决此问题。

编辑:删除了 AWS 免费套餐可能导致容器中断的声明。事实上,Linux Out of Memory Killer 确实使这种可能性成为可能,正如@akazuko 在 cmets 中所指出的那样。您能否在回复中提供journalctl -xeu docker 的输出?这样做将表明 OOM Killer 是否负责。请务必在运行该命令之前触发一次或两次错误,因为它会生成日志文件。

【讨论】:

  • 实际上 AWS 免费套餐可能会导致这种情况。免费层 EC2 实例中可用的内存非常有限。例如,如果您创建一个 npm 构建或一些内存密集型的东西,那么内核可以发出 OOM kill。如果在内存不足的主机上运行,​​docker 容器也很常见。我建议检查 docker daemon 日志中是否有任何 OOM 发出。
  • 感谢您添加该注释。我没有考虑过这种可能性,但你是对的。我已经相应地更新了我的回复。
  • 非常感谢您对我的教育!让我使用@TJ Zimmeerman 提供的命令检查输出的样子。我很感谢@akazuko 教我!
猜你喜欢
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-04
  • 2019-06-01
  • 2019-05-07
  • 2018-01-23
  • 2020-09-28
相关资源
最近更新 更多