|
@@ -1,10 +1,33 @@
|
|
|
-# 1. 现象
|
|
|
+# 1. 出错现象
|
|
|
+
|
|
|
+如下图红色字体中,有一条: No healthy hosts meet the resource constaints: [端口号:端口号/tcp portReservation...,意思就是“主机中已经没有可用的 7650 端口了。”
|
|
|
|
|
|

|
|
|
|
|
|
-# 2. 处理方法
|
|
|
+# 2. 原因分析
|
|
|
+
|
|
|
+可能的原因有二个:
|
|
|
+ 1. 这个服务器对外开启了端口,且启动的`容器数量,大于主机数`;即如果主机只有一台,启动了二个容器,端口都对外开放 7650,一定会报错。
|
|
|
+ 2. 由于**Rancher BUG**,容器进入了`独立容器`中去了。由于容器不断的生成然后又删除,在数据库记录中已经删除,然而实际的容器并未删除成功,导致其成为了`孤儿容器`,但 孤儿容器 也同样占用了主机的端口。正常的容器是可以看到所属于的 **应用/服务** 的,一旦成为 `孤儿容器` 后,就不属于任何 **应用/服务** 了,会出现在 主机 菜单中的独立容器中。如下图
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# 3. 处理方法
|
|
|
+
|
|
|
+ 1. 打开 『基础架构』--> 『主机』,主机菜单拉到最下面,可以看到所有的独立容器。
|
|
|
+
|
|
|
+<div class="warn">
|
|
|
+<h2>警告!</h2>
|
|
|
+<p>独立容器中的容器`并非都是可删除的`,用户手工通过 Docker 命令或 docker-compose 启动的容器,也在独立容器中!</p>
|
|
|
+<p>删除虽然不会导致固化的数据丢失,但会导致服务中断,且需要重建服务才能恢复!</p>
|
|
|
+</div>
|
|
|
|
|
|
+ 2. 从独立容器中,找出业务容器,删除,可以看到业务容器又会运行正常。
|
|
|
|
|
|

|
|
|
|
|
|
+
|
|
|
|
|
|
+ 3. 针对 Rancher BUG,已经有一些临时性的解决方法,比如定期清理独立容器。
|