【问题标题】:how to change/upgrade part of a Docker-image? a module inside the image, not the entire image如何更改/升级 Docker 映像的一部分?图像内的模块,而不是整个图像
【发布时间】:2020-12-05 13:29:53
【问题描述】:

首先,它在理论上是否正确且可能? 假设:我有一个 Superset 的 Docker 映像,由几个模块组成:Python、Postgres、Superset 本身等。容器运行良好,但我需要将 Superset 本身从 v.1.15 升级到 v.1.21 而Python 和其他部分令人满意地是最新的。 如何仅更改/升级图像的 Superset 部分? (因为发布的图片文件还没有更新)

【问题讨论】:

    标签: docker docker-compose containers docker-image superset


    【解决方案1】:

    其实,你可以从这张图片“派生”出来:

    FROM amancevice/superset
    
    RUN ...
    
    

    来自docs.docker.com: run FROM 指令初始化一个新的构建阶段,并为后续指令设置 Base Image。


    当运行时

    docker build -t your_new_image .
    

    您将获得一个新图像,其中amancevice/superset 作为基础图像RUN 命令让您可以运行任何需要升级的 shell 命令(请参阅docker.docs: run


    如果你只是想在一个正在运行的容器中升级,你可以exec 进入它

    docker exec -it <your container> bash
    

    (或sh,无论容器使用什么外壳)。

    docs.docker.com: exec。 您可以在自己的容器中进行操作,但您的更改仅应用于此容器,不会影响此映像中的新容器。

    【讨论】:

      猜你喜欢
      • 2014-02-02
      • 2010-11-16
      • 2013-04-24
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 2021-11-05
      • 2013-05-04
      • 1970-01-01
      相关资源
      最近更新 更多