我们有一台运行 CentOS 的服务器,该服务器上有 Docker 容器中的多个服务,用于将它们与主机更改分开。
上周五我们对 CentOS 进行了更新,从那时起我们的一项服务确实启动并立即退出。其他15+服务都还好。
我克隆了容器设置,更改了容器名称并重建了同样的问题:容器启动然后退出,没有任何消息。
该容器源自David Personette 的 samba 容器。现在退出但未使用的实际命令是:
exec ionice -c 3 smbd -FS
我应该降级 docker 会有副作用吗?我还能做些什么来让它再次运行吗?我们选择了容器来对操作系统进行抽象,这样的抽象是不是没有想象中那么好呢?
答案1
除非您提高调试级别,否则容器将退出且没有任何注释。你可以使用类似的东西--debuglevel=4
。
一旦你这样做了,重建并重新启动容器,你应该在最后得到类似的东西:
Server exit (EOF on stdin)
这指向解决方案,将smbd
调用更改为:
exec ionice -c 3 smbd -FS < /dev/null
并且您的容器不应再直接退出。
我不确定是什么导致了这种向后不兼容的更改,也不知道为什么没有针对现有的 dockerhub 条目进行测试。
在升级到 1.11 时,我的两个容器也损坏了。在降级到 1.10.3 时,遇到了可怕的Cannot stop container .... Container does not exist: container destroyed
错误。我必须停止 docker,清除所有历史记录,所以我真的不能推荐这样做。