ice --cloud ps 命令不显示处于构建状态的 Bluemix 容器

The ice --cloud ps command does not show the Bluemix container in the Building state

我想将代码更新到 Bluemix 容器。如下所示,ice --cloud ps 命令显示容器处于 运行 状态,而不是 Building 状态。

为了这个 post,我将 ice --cloud ps 命令的结果放在多行中。

$ ice --cloud ps 
Container Id           Name          Group    Image   Created          
1a234bc5-def6-7g       xyzContainer                   Aug 31 12:00   

State       Private IP        Public IP           
Running     111.111.1.1       222.222.2.2    

Ports
['80/tcp', '443/tcp', '1883/tcp', '4883/tcp', '8080/tcp'

我 运行 以下命令用于构建、标记和推送:

 ice --cloud build -t myImage .
 ice –-local tag myImage registry.ng.bluemix.net/myContainer/myImage
 ice –-local push registry.ng.bluemix.net/myContainer/myImage

在这种情况下,我不想更改 public IP address/setting 并且我想避免每次更改时都使用 deleting/creating 容器。我想用最新版本更新容器。你如何运行旧容器上的新图像?

您需要重新启动 运行 容器。推送新映像时不会自动触发重启。

您可以启动新容器,将您现有的 IP 地址重新绑定到新容器,等待更改发生,然后关闭旧容器。 如果您使用 IBM Containers on Bluemix 部署器,它可以为您完成这个过程。

注意:IP 重新绑定过程所花费的时间可能与 IP 地址首次获得连接所花费的时间一样多。

如果您手动部署,请根据问题中的示例完成这些步骤:

  1. 离开旧容器 运行 并启动新容器。
  2. 运行 以下命令:ice ip unbind 222.222.2.2 1a234bc5-def6-7g
  3. 从旧容器中删除地址。
  4. 运行以下命令绑定到新容器ice ip bind 222.222.2.2 abcd12345-123-123(其中"abcd12345-123-123"是新容器的ID。)注意: 如果您通过用户界面并在新容器上创建了一个 IP,您需要先解除绑定。
  5. 等待路由调整到新容器。
  6. 当您确信该过程成功时,请取下旧容器。