运行Docker容器随机消失在AWS EC2 Ubuntu

时间:2017-06-16 10:36:56

标签: amazon-web-services ubuntu docker amazon-ec2 ubuntu-16.04

我在使用Ubuntu的t2.micro AWS EC2实例上运行Docker。 我正在运行几个容器。我的一个长期运行的容器(总是相同的)在第三次运行大约2-5天之后就消失了。它刚刚消失,没有任何崩溃迹象。

  • 机器尚未重启(uptime说15天)。
  • 我不使用--rm标志:docker run -d --name mycontainer myimage
  • 运行docker ps -a时,此容器没有退出的僵尸。
  • 没有日志,即docker logs mycontainer找不到任何容器。
  • 时间范围内journalctl -u docker.service内没有日志条目 容器消失的地方。但是,还有一些其他日志条目 关于另一个容器(让我们称之为othercontainer) 大约每6分钟发生一次(这是一个cronjob,不知道是否相关):
    • could not remove cluster networks: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again
    • Handler for GET /v1.24/networks/othercontainer_default returned error: network othercontainer_default not found
    • Firewalld running: false

即使有例如一个内存不足的问题或者如果我的应用程序刚刚退出,我仍然会在ps -a概述中找到一个已退出的Docker容器僵尸,可能存在状态0!= 0,对吗? 我也不想自动--restart,我只是想看看已退出的容器。 我在哪里可以查找更多细节来追踪问题?

版本:

  • 操作系统:Ubuntu 16.04.2 LTS(内核:4.4.0-1013-aws
  • Docker:Docker version 17.03.1-ce, build c6d412e

1 个答案:

答案 0 :(得分:0)

感谢提示查看dmesg或可能是普通journalctl,我想我终于找到了问题。 不知何故,其中一个cronjobs每隔5分钟就会运行docker system prune -f。这个命令基本上似乎删除了所有未使用和未运行的东西。

我以前不知道这个命令,但当然这就是我退出的容器被移除的方式,而我不知道它是怎么发生的。