如何解决如何更改/升级Docker映像的一部分?图片中的模块,而不是整个图片
首先,从理论上讲是正确的并且可能吗? 假设:我有一个Superset的Docker映像,它由一些模块组成:Python,Postgres,Superset本身等。该容器运行良好,但是我需要将Superset本身从v.1.15升级到v.1.21,同时Python和其他部分都是令人满意的最新版本。 如何仅更改/升级图像的Superset部分? (因为已发布的图像文件尚未更新)
解决方法
实际上,您可以从此图像中“派生”:
FROM amancevice/superset
RUN ...
来自docs.docker.com: run FROM指令初始化一个新的构建阶段,并为后续指令设置基本映像。
运行时
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。 您可以在容器中玩耍,但所做的更改仅应用于此容器,不会影响此图像中的新容器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。