我在使用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 version 17.03.1-ce, build c6d412e
答案 0 :(得分:0)
感谢提示查看dmesg
或可能是普通journalctl
,我想我终于找到了问题。
不知何故,其中一个cronjobs每隔5分钟就会运行docker system prune -f
。这个命令基本上似乎删除了所有未使用和未运行的东西。
我以前不知道这个命令,但当然这就是我退出的容器被移除的方式,而我不知道它是怎么发生的。