gpt4 book ai didi

docker - Liberty Admin Center 将 Docker 服务器显示为正在运行,而它没有

转载 作者:行者123 更新时间:2023-12-02 20:50:34 24 4
gpt4 key购买 nike

我在 Ubuntu x64 上使用 Liberty 16.0.0.2。当我使用 REST 在另一台主机上部署远程 Liberty Docker 容器时,一切正常,但是当我手动停止这些远程容器(使用 docker stop xxx 命令)时,管理中心仍然显示这些容器正在运行,即使在重新启动集体 Controller 之后也是如此。

我已经为我的 Docker 容器定义了自动缩放,其中一些容器由于该策略而被停止,但一些真正运行的容器在管理中心中显示为已停止。以下是正在运行的容器列表:

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb59f94cd25b liberty_img "/opt/ibm/wlp/bin/ser" 41 minutes ago Up 41 minutes liberty_container11
5fd2d5858f60 liberty_img "/opt/ibm/wlp/bin/ser" 42 minutes ago Up 42 minutes liberty_container10
98117dac4f69 liberty_img "/opt/ibm/wlp/bin/ser" 42 minutes ago Up 42 minutes liberty_container9
cdce71905081 liberty_img "/opt/ibm/wlp/bin/ser" 8 hours ago Up 3 hours liberty_container6

这是管理中心向我展示的内容(注意容器 5 和 11):

enter image description here

如何解决这个问题,以便 Controller 发现我的 Docker 容器的正确状态?

messages.log file is attached ,但我在那里看不到任何有趣的东西。

最佳答案

由于您直接执行 docker stop 命令,因此集体成员基本上被杀死了,因此它不会向 Controller 报告它正在被停止。因此, Controller 报告该服务器的最后一个已知状态(由该服务器发布到 Controller ;成员将信息推送到 Controller )。对于进程被终止(而不是“正确”删除)的非 docker Liberty 成员来说,同样的行为也是如此。

如果 docker 成员被 serverCommands mbean(通过 Admin Center、swagger、java、jconsole、JMX REST 连接器等)或通过 '/wlp/bin ./server stop {memberName}' 命令停止,则不应看到这个问题,因为成员将首先向 Controller 报告它正在停止。由于它与您的环境有关,因此我会注意,如果您想通过管理中心停止/启动/重新启动自动缩放的服务器,您首先需要从该成员中删除自动缩放功能,或者将该成员置于维护模式。

为了回到你的集体的正确状态,你应该只需要等到成员的心跳超时过期 3 次(心跳的默认值是 60 秒,所以总共 3 分钟),之后 Controller 应该将它们标记为已停止(因为在约定的时间内没有收到他们的消息)。或者,您可以启动成员备份,然后“正确”停止它们(这可以通过管理中心通过将停止的成员置于维护模式(因为它们是自动缩放的)然后选择“重新启动”来启动成员备份然后“停止”以停止它。然后您可以删除维护模式)。

关于docker - Liberty Admin Center 将 Docker 服务器显示为正在运行,而它没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com