在 docker 服务更新中获取警告的全文
Get full text for warning in docker service update
当运行以下命令时:
docker service update captain-captain --force
我短暂地看到了一条警告:
no suitable node (scheduling constraints not satisfied on 2 nodes; host-mo…".
但我看不到全文,无法正确理解这一点。也没有任务 ID,例如mqo2k39bax94y6fiq7boxxtge
我过去见过类似的 warnings/errors,我可以用 docker inspect mqo2k39bax94y6fiq7boxxtge
.
检查
警告确实在短时间后消失并且更新似乎完成正常,所以这显然不是致命的,但我想更多地了解为什么首先显示它。
关键是添加 --detach
以解锁终端(这样它就不会等待任务完成):
docker service update captain-captain --force --detach
然后很快(如果终端没有解锁,截断的消息仍会显示:
docker service ps captain-captain
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
1ejhe98ozrdn captain-captain.1 caprover/caprover:1.10.1 Ready Pending 2 seconds ago "no suitable node (host-mode p…"
o9y4cfwlsqy7 \_ captain-captain.1 caprover/caprover:1.10.1 mercian-31 Shutdown Running 2 seconds ago
然后快速抓取显示错误的任务ID,并在错误解决之前进行检查:
docker inspect 1ejhe98ozrdn
在该输出中您会发现完整的错误,在本例中为:
"Err": "no suitable node (scheduling constraints not satisfied on 2 nodes; host-mode port already in use on 1 node)"
为什么 docker 不能首先显示完整的错误消息,而不必通过这些步骤,我不确定。
顺便说一句,docker 似乎并没有在安排新实例之前停止旧实例,即使我们确实在使用 stop-first
。
此答案的功劳goes here。
当运行以下命令时:
docker service update captain-captain --force
我短暂地看到了一条警告:
no suitable node (scheduling constraints not satisfied on 2 nodes; host-mo…".
但我看不到全文,无法正确理解这一点。也没有任务 ID,例如mqo2k39bax94y6fiq7boxxtge
我过去见过类似的 warnings/errors,我可以用 docker inspect mqo2k39bax94y6fiq7boxxtge
.
警告确实在短时间后消失并且更新似乎完成正常,所以这显然不是致命的,但我想更多地了解为什么首先显示它。
关键是添加 --detach
以解锁终端(这样它就不会等待任务完成):
docker service update captain-captain --force --detach
然后很快(如果终端没有解锁,截断的消息仍会显示:
docker service ps captain-captain
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
1ejhe98ozrdn captain-captain.1 caprover/caprover:1.10.1 Ready Pending 2 seconds ago "no suitable node (host-mode p…"
o9y4cfwlsqy7 \_ captain-captain.1 caprover/caprover:1.10.1 mercian-31 Shutdown Running 2 seconds ago
然后快速抓取显示错误的任务ID,并在错误解决之前进行检查:
docker inspect 1ejhe98ozrdn
在该输出中您会发现完整的错误,在本例中为:
"Err": "no suitable node (scheduling constraints not satisfied on 2 nodes; host-mode port already in use on 1 node)"
为什么 docker 不能首先显示完整的错误消息,而不必通过这些步骤,我不确定。
顺便说一句,docker 似乎并没有在安排新实例之前停止旧实例,即使我们确实在使用 stop-first
。
此答案的功劳goes here。