带有 Samba 的 Docker 容器在没有任何消息的情况下退出

joh*_*ohn 8 samba docker

我们有一个运行 CentOS 的服务器,在该服务器上有多个 Docker 容器中的服务来将它们与主机更改分开。

上周五我们对 CentOS 进行了更新,从那时起我们的一项服务确实启动并立即退出。其他 15+ 服务都很好。

我克隆了容器设置,更改了容器名称并以相同的问题重建:容器启动然后退出,没有任何消息。

该容器源自David Personette 的 samba 容器。现在退出但不使用的实际命令是:

exec ionice -c 3 smbd -FS
Run Code Online (Sandbox Code Playgroud)

我应该降级 docker 会有副作用吗?我还能做些什么来让它再次运行?我们选择容器从操作系统中抽象出来,是不是没有想象中的那么抽象?

Ant*_*hon 8

除非您提高调试级别,否则容器将退出而没有任何注释。你可以使用类似的东西--debuglevel=4

一旦你这样做了,重建并重新启动容器,你应该在最后得到类似的东西:

Server exit (EOF on stdin)
Run Code Online (Sandbox Code Playgroud)

这指向解决方案,将smbd调用更改为:

exec ionice -c 3 smbd -FS < /dev/null
Run Code Online (Sandbox Code Playgroud)

并且您的容器不应再直接退出。

我不确定是什么导致了这种向后不兼容的更改,也不知道为什么没有针对现有的 dockerhub 条目进行测试。

在升级到 1.11 时,我的两个容器也损坏了。在降级到 1.10.3 时,遇到了可怕的Cannot stop container .... Container does not exist: container destroyed错误。我不得不停止 docker,清除所有历史记录,所以我真的不能推荐。