【问题标题】:Update docker image in Azure Container Instances更新 Azure 容器实例中的 docker 映像
【发布时间】:2018-04-12 12:46:44
【问题描述】:

我在 docker hub 的存储库中有一个图像。我基于 docker hub 上的存储库中的映像创建了 azure 容器实例。我更新了 docker hub 上存储库中的图像。如何将更改应用到容器?

【问题讨论】:

    标签: azure azure-container-instances


    【解决方案1】:

    如果你遵循命名标签:latest的做法,那么不需要重新创建容器

    1. 推送图片
    2. 重置容器实例
    3. 完成!

    这仅用于图像更新

    【讨论】:

    • 如何重置图像? azure CLI 有一个 az container restart 命令,但我不确定它是否会执行相同的操作或提取最新版本的映像。
    • 刚刚对此进行了测试,它确实只需要重新启动。我部署了一个引用:latest 标记的容器。执行az container restart 命令导致映像被再次拉取和部署。
    【解决方案2】:

    除了提到的重新创建容器组之外,根据您的场景,您还可以部署一个指向:latest docker 映像的容器组一次。

    在我的场景中,我有一个每天运行一次的计划容器实例。每当它启动时,它都会从 azure 容器注册表中提取带有 :latest 标记的 docker 映像。这样可以避免重新创建容器组。

    【讨论】:

    • 最实用的解决方案,也适用于持续交付。
    【解决方案3】:

    到目前为止我发现的方法是

    1. 使用 Azure 资源浏览器。

      • 找到容器组
      • 点击读/写
      • 点击编辑
      • 更改映像版本
      • 使用私有注册表时将密码输入imageRegistryCredentials
      • 点击发帖
    2. This blog post 使用 Go SDK。

    3. 使用 ARM 模板删除并重新创建组。使用这种方法,您将失去公共 ip。

    在上述任何情况下,您都会有一些停机时间。

    【讨论】:

    • 我没有看到“单击读/写”按钮。它被删除了吗?
    • @Taylor 我认为 LoekD 的意思是顶部导航栏上的读/写按钮。在更改任何值之前需要它,否则将显示需要该模式的错误。
    【解决方案4】:

    您还可以使用 Azure CLI。使用相同的资源组名称和容器组名称再次运行az container create,并带有新的图像标记。容器将更新为新图像。

    【讨论】:

    • 还需要更多用于 Windows 类型容器的参数。见doc'n
    • 如果标签名称没有改变怎么办,即您使用的是master或latest的分支标签
    • 这似乎不起作用@anders。如果容器存在,您会收到此错误:“如果您要更新容器组的操作系统类型、重启策略、网络配置文件、CPU、内存或 GPU 资源,您必须先将其删除,然后再创建一个新的”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    相关资源
    最近更新 更多